1,对象的构造通过构造函数来完成,和类名相同且没有返回值,这个时候只有参 数一个特性,构造函数可以自定义参数,这个参数一般而言就是对类进行初始 化来使用的;带有参数的构造函数的意义在于可以使得每个对象有不同的初始 化状态(生活中每个事物必然包含自己的初始化状态,不如人的出生,面向对 象用来将生活中的事物映射的程序设计领域,所以现实世界的情况都必须可以 用面向对象的语言来描述,因此带有参数的构造函数就是非常必要的);
2,带有参数的构造函数:
1,构造函数可以根据需要定义参数;
2,一个类中可以存在多个重载的构造函数;
3,构造函数的重载遵循 C++ 重载的规则;
4,代码示例:
1 class Test 2 { 3 public: 4 Test(int v) 5 { 6 // use v to initialize member 7 } 8 };
3,对象定义和对象声明的区别:
1,对象定义:申请对象的空间并调用构造函数;
1,第一步,必须申请对象所占用的内存空间;
2,第二步,调用构造函数;
2,对象声明:告诉编译器存在这样一个对象;
1,对象在哪里定义的不知道,链接的时候回去找;
2,预处理,编译器对源代码进行检查并生成目标文件,链接器在各个目标文件中寻找目标文件存在的一些名字;
3,对象声明时,没有对象定义时的两个步骤;
3,代码示例:
1 Test t; // 定义对象并调用构造函数; 2 3 Int main() 4 { 5 // 告诉编译器存在名为 t 的Test对象; 6 extern Test t; 7 8 return 0; 9 }
4,对象的声明中可以在构造函数参数中给出默认值,对象的定义中不能够在构 造函数参数中给出默认值;
4,构造函数的自动调用(第一种初始化对象方式):
1 #include <stdio.h> 2 3 class Test 4 { 5 public: 6 Test() 7 { 8 printf("Test()\n"); 9 } 10 11 Test(int v) 12 { 13 printf("Test(int v), v = %d\n", v); 14 } 15 }; 16 17 int main() 18 {