您的位置:首页 > 编程语言 > C语言/C++

c++ 第四章 继承和派生

2014-04-20 00:28 274 查看
1、基类的成员要在初始化列表中进行,新增成员既可以在初始化列表也可在函数体中实现。

2、派生类构造函数执行顺序,基类构造函数->对象成员变量的构造函数->派生类构造函数体。

3、同一层次多个基类的构造函数调用顺序取决于派生类声明时的顺序,与初始化列表中的顺序无关。派生类的成员变量同理。

4、基类中只有默认构造函数(自己没有重新定义),派生类构造函数的定义可以省略对基类构造函数的调用。派生类对象的成员变量(是某类对象)同理。都可省略时,初始化列表就可以不存在了。更进一步,若所有基类和对象成员的构造函数都不需要参数,且派生类也不需要参数时,则派生类的构造函数都可省略。

5、三种继承方式,基类的private成员都不可以继承,为基类私有,protected继承,基类的protected和public成员都变为protected,public继承,基类的protected和public保持不变,private继承,基类的protected和public成员都变为派生类私有。

6、只有在public继承下,派生类对象可以直接给基类对象赋值,反之不行。

7、解决多基继承的二义性问题,在声明派生类时,指定virtual继承方式。这主要是针对多个基类中含有多个相同的成员时,派生类继承时会出现多义性的问题。例如A派生B和C,然后D继承了B和C,这样B和C中会有A相同成员的拷贝,若指定为虚继承,会使派生类对象只保留共同基类的一份成员变量。

8、一个类在类族中即可当做虚基类,也可当做非虚基类,不是由自己决定,由派生类声明时决定。

9、虚基类子对象是由派生类的构造函数通过调用虚基类的构造函数进行初始化的,若派生类构造函数的初始化列表中没有虚基类构造函数的调用,表示使用虚基类的缺省构造函数。(这包括从虚基类间接派生的派生类),初始化列表中,虚基类的构造函数优先于非虚基类。

10、以下特征不能被继承:构造函数,析构函数,用户重载的new运算符,用户重载的=运算符,友元关系。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: