继承的概念。
继承机制是面向对象程序设计使代码可以复用的重要手段,它允许程序员在保持原有类的基础上进行扩展,继承呈现了
面对对象程序设计的层次结构,继承是类设计层次的复用。
1.派生类的构造函数必须调用基类的构造函数初始化基类的那一部分成员。如果基类没有默认的构造函
数,则必须在派生类构造函数的初始化列表阶段显示调用。
(1)关于编译器生成构造函数的问题
语法:如果一个类没有显示定义那么编译器就会生成一个默认的构造函数
实际:如果一个类没有显示定义构造函数,假如编译器需要构造函数就会生成一个无参的构造函数。
如果编译器不需要,那么就不会生成。
(2)如果基类的构造函数存在,分两种情况:
>>如果基类的构造函数是缺省的构造函数,
派生类如果没有显示定义构造函数,编译器生成一个默认的构造函数,要在生成默认构造函数初始化列表完成基类成员的初始化。
派生类如果显示定义,必须在其初始化列表位置完成基类成员的初始化
>>如果基类的构造函数是非缺省
用户必须先给派生类定义构造函数,并且在其构造函数初始化列表的位置完成显示调用基类的构造函数完成基类成员的初始化。
2. 派生类的拷贝构造函数必须调用基类的拷贝构造完成基类的拷贝初始化。
3. 派生类的operator=必须要调用基类的operator=完成基类的复制。
4. 派生类的析构函数会在被调用完成后自动调用基类的析构函数清理基类成员。因为这样才能保证派生类
对象先清理派生类成员再清理基类成员的顺序。
5. 派生类对象初始化先调用基类构造再调派生类构造。
构造:创建派生类的对象,先调用派生类的构造函数,在派生类构造函数初始化的位置完成派生类对象中成员的初始化
先初始化基类成员:调用基类的构造函数
初始化派生类自己的成员:执行初始化语句
再来执行派生类构造函数的函数体
6. 派生类对象析构清理先调用派生类析构再调基类的析构。
析构:析构派生类的对象,先调用派生类的析构函数,编译器在派生类析构函数最后一条语句后插入基类析构函数的调用。
继承
最新推荐文章于 2024-11-27 17:01:36 发布