不同的类中有大量重复的代码和实现,为了优化引入继承和派生。
继承和派生,本质是相同的,只是从不同的角度来描述。
父亲“派生”出儿子, 儿子“继承”自父亲。

除了“构造函数”和“析构函数”,父类的所有成员函数,以及数据成员,都会被子类继承!(笼统说法,细节请翻看c++primer)
继承方式是有多种:先以公有继承为例




这时,从父类继承的description()方法不适用于子类,需要子类自己写一个description()方法,此方法(子类的方法)中不能访问从父类中继承来的私有数据成员(可以访问自己的私有数据成员),
但可以访问从父类中继承来的公有功能函数。
子类对象调用方法时,先在自己定义的方法中去寻找,如果有,就调用自己的方法。如果找不到,就到父类的方法中去找,如果有,就调用父类的这个同名方法。若都找不到,就发生错误了。
子类对象的内存分布


重新生成即可观察内存分布:



protected访问权限

最后一行:子类的成员函数中不可以访问。
继承方式:



什么时候使用继承和派生

子类对父类的成员的访问权限

子类的构造函数


运行结果:



重测:

运行结果:


子类的析构函数

以上为例:在类中写上析构函数


运行:


浙公网安备 33010602011771号