以下总结只是个人抽取一些自己认为较为基础需掌握的要点,并没有进行深入的解释和扩展。
一、C++中常用的3种继承是公用继承,受保护继承,私有继承。它们的定义分别是:
1、公用继承:基类的pubilc成员为派生类的pubilc成员,基类的protected成员为派生类的protected成员。
2、受保护继承:基类的protected、public成员在派生类中为protected成员。
3、私有继承:基类的所有成员在派生类中为private成员。
使用class保留字定义的派生类默认具有private继承,而用struct保留字定义的类默认具有public继承。
二、继承情况下的类作用域
1、在继承情况下,派生类的作用域嵌套在基类作用域中。
2、与基类成员同名的派生类成员将屏蔽对基类成员的直接访问,可使用作用域操作符访问被屏蔽成员。
三、继承与静态成员、友元关系
1、友元关系不能继承。基类的友元对派生类的成员没有特殊访问权限。
2、无论从基类派生出多少个派生类,每个static成员只有一个实例。
四、转换与继承
1、从派生类到基类的转换中,引用转换不同于转换对象,引用本身未被复制,而形参是基类对象时,那派生类对象的基类部分被复制。
2、从基类到派生类的自动转换是不存在的。
五、继承与构造函数、析构函数
1、构造函数和复制控制成员不能继承,每个类定义自己的构造函数和复制控制成员。像任何类一样,如果类不定义自己的默认构造函数和复制控制成员,就将使用合成版本。
2、常见的是派生类构造函数通过将基类包括在构造函数初始化列表中来间接初始化继承成员。
3、一个类只能初始化直接基类。
4、每个析构函数只负责清除自己的成员,与构造函数次序相反,先运行派生类析构函数,然后按继承层次依次向上调用各基类析构函数。
六、虚函数
1、指向基类的指针在操作它的多态类对象时,会根据不同的类对象,调用其相应的函数,这个函数就是虚函数。
2、 定义为虚函数的成员函数和通过基类类型的引用或指针进行函数调用是触发动态绑定的条件,这也是C++用以支持多态性的基石。
3、一旦函数在基类中声明为虚函数,它就一直为虚函数,派生类无法改变该函数为虚函数这一事实。
4、虚函数使派生类继承基类,又派生自己的特点,达到针对不同对象实现不同的功能这一伟大效果。
七、句柄类是存储指向动态分配对象指针的类,用来管理基类指针。