
第12章构造函数
第12章 构造函数

目录12.1类与对象12.2构造函数的需要性12.3构造函数的使用12.4析构函数12.5带参数的构造函数12.6重载构造函数12.7默认构造函数12.8类成员初始化的困惑12.9构造类成员12.10构造对象的顺序
12.1 类与对象 12.2 构造函数的需要性 12.3 构造函数的使用 12.4 析构函数 12.5 带参数的构造函数 12.6 重载构造函数 12.7 默认构造函数 12.8 类成员初始化的困惑 12.9 构造类成员 12.10 构造对象的顺序

第12章构造函数构造函数能够创建类的对象,初始化其成员。析构函数能够撤销类的对象。构造函数和析构函数是类的特殊成员函数构造函数和析构函数的实现使C++的类机制得以充分的展示
• 构造函数能够创建类的对象,初始化其成员。 • 析构函数能够撤销类的对象。 • 构造函数和析构函数是类的特殊成员函数。 • 构造函数和析构函数的实现使C++的类机制得 以充分的展示

12.1类与对象1、类与对象的区别类描述立一类事物所具有的共同属性和特征对象是类的一个实例,具有确定的属性值。类只有一个类的实例可以有无数个对象可以创建和销毁,但类是无所不在的
1、类与对象的区别 • 类描述一类事物所具有的共同属性和特征。 • 对象是类的一个实例,具有确定的属性值。 • 类只有一个。 • 类的实例可以有无数个。 • 对象可以创建和销毁,但类是无所不在的

12.1.2定义对象,属于不同类的对象在不同的时刻、不同的地方分别被建立主函数开始执行前,首先建立全局对象在程序执行过程中,遇到对象定义才创建局部对象。与定义变量类似,定义对象时,C++为其分配空间
• 属于不同类的对象在不同的时刻、不同的地 方分别被建立。 • 主函数开始执行前,首先建立全局对象。 • 在程序执行过程中,遇到对象定义才创建局 部对象。 • 与定义变量类似,定义对象时,C++为其分配 空间

12.1.2定义对象例12-1:全局对象、局部对象、静态对象、堆对象class DeskDesk类{public :intweight ;inthigh ;intwidth ;intlength ;1;全局对象Desk da ;
例12-1:全局对象、局部对象、静态对象、堆对象 class Desk { public: int weight ; int high ; int width ; int length ; } ; Desk da ; Desk类 全局对象

12.1.2定义对象classStool另一个类:Stoolpublic :intweight ;inthigh ;intwidth ;intlength ;1;全局对象Stool sa ;
class Stool { public: int weight ; int high ; int width ; int length ; } ; Stool sa ; 另一个类:Stool 全局对象

12.1.2定义对象静态局部对象void fn()局部对象Stoolstaticss ;Deskda;1/.1voidd main()堆对象/局部对象Stoolbs;Desk*pd = new DeskDesknd[50];// 局部对象数组/ /.deletepd;//释放堆对象人
void fn( ) { static Stool ss ; Desk da ; //. } void main( ) { Stool bs ; // 局部对象 Desk *pd = new Desk ; Desk nd[50] ; // 局部对象数组 //. delete pd ; // 释放堆对象 } 静态局部对象 局部对象 堆对象

12.1.3对象的初始化根据变量定义,全局变量和静态变量在定义默认值为0(分配空间)时,遇到局部变量在定义时,给其分配内存空间此时,该内存空间之前存储的值即为此局部变量的默认值。,所以,局部变量的默认值为随机数
• 根据变量定义,全局变量和静态变量在定义 (分配空间)时,默认值为0。 • 遇到局部变量在定义时,给其分配内存空间。 • 此时,该内存空间之前存储的值即为此局部 变量的默认值。 • 所以,局部变量的默认值为随机数

12.1.3对象的初始化,对象定义时,情况不一样。对象的意义表达了现实世界的实体因此,一旦建立对象,须有一个有意义的初始值。C++建立和初始化对象的过程专门由该类的构造函数来完成,这个构造函数很特殊,只要对象建立,它马上被调用,给对象分配空间和初始化
• 对象定义时,情况不一样。 • 对象的意义表达了现实世界的实体。 • 因此,一旦建立对象,须有一个有意义的初 始值。 • C++建立和初始化对象的过程专门由该类的构 造函数来完成。 • 这个构造函数很特殊,只要对象建立,它马 上被调用,给对象分配空间和初始化