12.1.3对象的初始化析构函数也是类的成员函数当对象撤销时,就会马上被调用。作用是释放与对象捆绑的资源,做一些善后处理
• 析构函数也是类的成员函数。 • 当对象撤销时,就会马上被调用。 • 作用是释放与对象捆绑的资源,做一些善后 处理
12.2构造函数的必要性,变量初始化:int a = 1; int *pa =&a ;数组初始化:创建结构变量,int b[1={ 1, 2, 3, 4 ] ;并初始化结构初始化:void fn()struct Student{Jlstudent s = [100, 3.5];intsemesHours;1floatgpa;;
• 变量初始化: int a = 1; int *pa = &a ; • 数组初始化: int b[ ] = { 1, 2, 3, 4 } ; • 结构初始化: struct Student { int semesHours; float gpa; }; void fn( ) { student s = {100, 3.5}; } 创建结构变量, 并初始化
12.2构造函数的必要性这类是一种抽象的数据类型,其数据成员不能在声明时初始化错误示例:Class Date1int day = 10 ;int month = 3 ;int year = 2017 ; 对象要先赋值,后使用在使用一个对象时,它的每个数据成员都应该有确定的值对象的初始化体现在对数据成员的赋值
• 类是一种抽象的数据类型,其数据成员不能在 声明时初始化。 错误示例: Class Date { int day = 10 ; int month = 3 ; int year = 2017 ; } ; ✓ 对象要先赋值,后使用。 ✓ 在使用一个对象时,它的每个数据成员都应该有确 定的值。 ✓ 对象的初始化体现在对数据成员的赋值
12.2构造函数的必要性,创建对象时,如果数据成员没有被赋值,那么和普通变量一样,它的值是不可预知的对象是一个实体,在使用一个对象时,它的每一个数据成员都应该有确定的值如果一个类中所有的成员(包括数据成员和成员函数)都是公有的。那么在定义对象时,可以同时对其数据成员进行初始化
• 创建对象时,如果数据成员没有被赋值,那 么和普通变量一样,它的值是不可预知的。 • 对象是一个实体,在使用一个对象时,它的 每一个数据成员都应该有确定的值。 • 如果一个类中所有的成员(包括数据成员和 成员函数)都是公有的。 • 那么在定义对象时,可以同时对其数据成员进 行初始化
12.2构造函数的必要性例12-2:公有成员初始化classDate[public :intday ;定义对象,并初始化intmonth ;intyear ;1;Dated1 = [20, 3, 2022] ;如果类中有私有或保护成员就不能这样进行初始化注只能使用公有成员函数对它们赋值
例12-2:公有成员初始化 class Date { public: int day ; int month ; int year ; } ; Date d1 = {20, 3, 2022} ; 定义对象,并初始化 如果类中有私有或保护成员就不能这样进行初始化, 只能使用公有成员函数对它们赋值。 注