类的属性
类的属性-初始化对象
从程序设计的角度,对象只是变量,因此:
-再栈上创建对象时,成员变量初始化为随机值;
-在堆上创建变量时,成员变量初始化为随机值;
-在静态存储区创建变量时, 成员变量初始化为 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 }
构造函数没有返回值,而且与类名相同。