类的属性

类的属性-初始化对象

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

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

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

 -在静态存储区创建变量时, 成员变量初始化为 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\n", gt.getI());
25     printf("gt.j = %d\n", gt.getJ());
26     
27     Test t1;
28     
29     //t1.initialize();
30     
31     printf("t1.i = %d\n", t1.getI());
32     printf("t1.j = %d\n", t1.getJ());
33     
34     t1.initialize();
35     
36     Test* pt = new Test;
37     
38     pt->initialize();
39     
40     printf("pt->i = %d\n", pt->getI());
41     printf("pt->j = %d\n", 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\n");
14         
15         i = 1;
16         j = 2;
17         
18         printf("Test() End\n");
19     }
20 };
21 
22 Test gt;
23 
24 int main()
25 {
26     printf("gt.i = %d\n", gt.getI());
27     printf("gt.j = %d\n", gt.getJ());
28     
29     Test t1;
30     
31     printf("t1.i = %d\n", t1.getI());
32     printf("t1.j = %d\n", t1.getJ());
33     
34     Test* pt = new Test;
35     
36     printf("pt->i = %d\n", pt->getI());
37     printf("pt->j = %d\n", pt->getJ());
38     
39     delete pt;
40     
41     return 0;
42 }

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

posted @ 2018-12-11 21:06  lemaden  阅读(302)  评论(0编辑  收藏  举报