C++继承

继承:

class worker:public person{

public:

void work();

int m_iSalary;

};

基类--派生类;父类----子类

image-20201116212507900

申请的时候先申请父类,销毁的时候先销毁子类。

公有继承

class A:public B

image-20201116215236938

保护继承

class A:protected B

image-20201117193333007

私有继承

class A:private B

image-20201117194201166

继承中的特殊关系

隐藏

当父类和子类中有两个相同名字的方法,子类继承父类的时候,此时子类的方法会隐藏了父类的方法。调用方法如下:(soldier子类和person父类都有play方法)

image-20201117201209229

solider子类和person父类都有code这个属性。

image-20201117201451500

isA

父类和子类的继承关系。

子类对象可以赋值给父类的指针。父类指针可以指向子类对象地址。

父类指针只能调用父类自己的方法,无法调用子类的成员函数。

在继承关系中在堆上new一个子类对象容易出现内存泄漏,就是在释放内存的时候,子类的析构函数没有被调用。解决方法:虚析构函数。virtual~类名();

多继承与多重继承

多重继承:一个基类有一个派生类,这个派生类又有一个派生类。

多继承:一个派生类有多个基类。

虚继承