语言开发-C++基础(继承)
---------------------
继承与组合:
在程序中,继承是指用已有的类来创建新的类。
已有类 称基类/父类,新类 称为 派生类/子类。
格式:
class 派生类名:[继承方式] 基类名
{
//各种成员
};
继承方式:
public 公有继承
private 私有继承(默认)
protected 保护继承
继承方式指定了 派生类 对 从基类继承来的成员 的访问权限
公有继承:(掌握)
基类的公有成员,通过公有继承,成为派生类的公有成员
基类的私有成员,通过公有继承,还是基类的私有成员,不能直接访问
基类的保护成员,通过公有继承,成为派生类的保护成员
私有继承:(了解)
基类的公有成员,通过私有继承,成为派生类的私有成员
基类的私有成员,通过私有继承,还是基类的私有成员,不能直接访问
基类的保护成员,通过私有继承,成为派生类的私有成员
保护继承:(了解)
基类的公有成员,通过保护继承,成为派生类的保护成员
基类的私有成员,通过保护继承,还是基类的私有成员,不能直接访问
基类的保护成员,通过保护继承,成为派生类的保护成员
继承中的构造与析构函数
构造函数与析构函数不能被继承
构造函数:
先在派生类中调用基类的构造函数(初始化列表)初始化从基类继承来的成员,再初始化自己新增的成员
析构函数:
先析构派生类自己的成员,再析构从基类继承来的成员
先构造的后析构
后构造的先析构
函数覆盖/隐藏
在派生类中定义与基类同名的函数,然后通过派生类对象调用该函数时,编译器默认调用的是派生类自己的版本。
如果想调用从基类继承来的那个同名函数,必须带上类名和作用域
基类名::函数();
赋值兼容:
在基类与公有派生类之间存在赋值兼容原则
具体:
1.派生类对象可以给基类对象赋值
2.基类指针可以指向派生类对象
3.派生类对象可以用来初始化基类引用。
在任何需要基类对象时,都可以用公有派生类对象来替代