• 类的属性


    类的属性-初始化对象

    从程序设计的角度,对象只是变量,因此:

     -再栈上创建对象时,成员变量初始化为随机值;

     -在堆上创建变量时,成员变量初始化为随机值;

     -在静态存储区创建变量时, 成员变量初始化为 0 值。

    生活中的对象都是初始化后才能上市。

    初始状态是普遍存在的状态。

    如何解决?

    解决方案:

    -调用initial 函数;

    而且一旦生成了对象,就要必须调用初始化函数。实例一

    就像我们平时做事情的时候必须要有先后顺序,那么初始化函数必须最先调用,那么我们就不用自己手工调用啊,自己调用万一忘记?何不把对象的初始化直接放置在里面?实例二

    实例一:

     1 #include <stdio.h>
     2 
     3 class Test
     4 {
     5 private:
     6     int i;
     7     int j;
     8 public:
     9     int getI() { return i; }
    10     int getJ() { return j; }
    11     void initialize()
    12     {
    13         i = 1;
    14         j = 2;
    15     }
    16 };
    17 
    18 Test gt;
    19 
    20 int main()
    21 {
    22     gt.initialize();
    23     
    24     printf("gt.i = %d
    ", gt.getI());
    25     printf("gt.j = %d
    ", gt.getJ());
    26     
    27     Test t1;
    28     
    29     //t1.initialize();
    30     
    31     printf("t1.i = %d
    ", t1.getI());
    32     printf("t1.j = %d
    ", t1.getJ());
    33     
    34     t1.initialize();
    35     
    36     Test* pt = new Test;
    37     
    38     pt->initialize();
    39     
    40     printf("pt->i = %d
    ", pt->getI());
    41     printf("pt->j = %d
    ", pt->getJ());
    42     
    43     delete pt;
    44     
    45     return 0;
    46 }
     1 #include <stdio.h>
     2 
     3 class Test
     4 {
     5 private:
     6     int i;
     7     int j;
     8 public:
     9     int getI() { return i; }
    10     int getJ() { return j; }
    11     Test()
    12     {
    13         printf("Test() Begin
    ");
    14         
    15         i = 1;
    16         j = 2;
    17         
    18         printf("Test() End
    ");
    19     }
    20 };
    21 
    22 Test gt;
    23 
    24 int main()
    25 {
    26     printf("gt.i = %d
    ", gt.getI());
    27     printf("gt.j = %d
    ", gt.getJ());
    28     
    29     Test t1;
    30     
    31     printf("t1.i = %d
    ", t1.getI());
    32     printf("t1.j = %d
    ", t1.getJ());
    33     
    34     Test* pt = new Test;
    35     
    36     printf("pt->i = %d
    ", pt->getI());
    37     printf("pt->j = %d
    ", pt->getJ());
    38     
    39     delete pt;
    40     
    41     return 0;
    42 }

    构造函数没有返回值,而且与类名相同。

  • 相关阅读:
    360浏览器自动填写用户名和密码、下拉框解决办法
    实用JAVA工具类网站
    JQuery中ajaxSubmit,在ie或360兼容,提交后台不能获得参数
    java中形参的可变参数的定义(如String... args) .
    用sqldeveloper连接数据库
    ORA-12541:TNS:无监听程序问题
    小工具:生成半透明背景色的 CSS 代码,不影响子元素透明度
    JQuery使用小结
    ajaxSubmit 在ie9或360兼容中,form下是空的
    ajax 跨域请求数据 jsonp 示例
  • 原文地址:https://www.cnblogs.com/lemaden/p/10105209.html
Copyright © 2020-2023  润新知