C++中基类与派生类的关系,以及相关的继承方式
一.
类与类之间存在相同,也存在差异,于是就有了基类(基础类)也叫父类,基础类+差异就有了派生类(子类)
继承的是子类(派生类),被继承的是父类(基类)‘;
基类的出现可以节省大量的代码(代码复用),节省开发时间,缩短开发周期,但是提高了类与类之间的耦合度,降低了代码的安全性与可维护性
二. 继承方式:
class 类名:继承方式 基类1,继承方式 基类2................
{
........................
}
三.继承的效果与问题:
子类可以继承父类中的所有成员,
例:
父类:class Fa 子类:class Son
Fa *fa = new Son; 如果子类中有和父类中相同的成员,则会调用父类中的成员,这种叫隐藏(子类隐藏父类)
Son *son = new Son; 这个时候会调用子类的;
父子类不可以形成重载,只有在统一作用域下同名不同参或const属性的函数才能形成重载
在子类中可以访问父类的权限:
父类中的:
public:在子类中可以访问,protceted:在子类中可以访问,private:在子类中不可以访问
!!!:继承方式:
public:不变 protected:公有变保护,其他不变 private:全部变私有
四.虚函数
虚函数是实现多态的基础;
在父类中的函数加virtual关键字,这个函数就叫做虚函数,如果子类中有相同函数,这个时候就会调用子类中的函数。
五.继承中的构造,拷贝与析构
在继承时先调用父类的构造函数,在调用子类的
在析构的时候,先调用自己的析构函数,在调用父类的
拷贝的时候顺序与构造函数一样,
可以继承多个父类,在构造时按顺序调用父类的构造,但是在析构的时候就先调用自己的,再按逆序调用析构函数