c++中的继承

    xiaoxiao2021-03-25  16

    声明:本博的图片均截图自慕课网手机客户端,图片的版权归慕课网所有。

    1、三种继承

    公有继承 保护继承 私有继承

    2、继承中的隐藏

    隐藏的定义 访问父类中隐藏的数据成员 访问父类中隐藏的成员函数

    3、多重继承与多继承

    多重继承 多继承

    4、避免菱形继承多余的系统开销

    解决方法是在菱形继承中使用虚继承,以上图为例,操作方法是类B和类C虚继承类A。

    class B virtual public : A { public: B(); `~B(); }; class C virtual public : A { public: C(); `~C(); };

    5、菱形继承中类的重定义问题

    解决方法是使用宏定义,还是以上图的菱形继承为例

    //A.h文件 #ifnDef A_H #Def A_H Class A() { ... }; #endif

    6、父类指向子类(is-a)

    子类是一个特殊的父类。因此可以用父类的指针指向子类,也可以用子类对象给父类对象赋值。

    父类指针指向子类对象 子类对象给父类对象赋值 代码示例 //假设有两个类是父子关系。父类:Person,子类:Soldier int main() { Soldier s1; //子类对象给父类对象赋值 Person p1=s1; //父类指针指向子类对象 Person * p2=& s1; //但是二者绝不相等 //下面这句代码是错的,因为虽然子类对象可以给父类对象赋值,但是 //第一、赋值时发生了截断。父类只能保存自己数据成员有的部分内容 //其指针也只能指向自己有的那部分内容 //第二、类本身是一种类型,不同的类名,即使其数据成员和成员函数一致, //也不是同一类型,其对象也不可能相等。 p1=s1//这句是错的 }
    转载请注明原文地址: https://ju.6miu.com/read-200054.html

    最新回复(0)