多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 继承 ~~~ class Father { public: int age; private: string name; public: void func1() { cout << "func1" << endl; } }; class Son : public Father { public: void printResult() { func1(); } }; ~~~ # 继承方式 公有继承: 1. 父类的公有,子类是公有 2. 父类的保护,子类是保护 3. 父类的私有,子类是私有 保护继承: 1. 父类的公有,子类是保护 2. 父类的保护,子类是保护 3. 父类的私有,子类是私有 私有继承: 1. 父类的公有,子类是私有 2. 父类的保护,子类是保护 3. 父类的私有,子类是私有 # 继承和组合混搭 先调用父类的构造,然后调用成员对象的构造,最后调用本身的构造,析构函数调用顺序反之. **改变从基类继承过来的静态函数的某个特征,返回值或者参数个数,将会隐藏基类重载的函数** # 直接调用父类的 `父类::xx` # 不能被继承的 构造和析构和赋值函数 # 菱形继承-虚继承 用virtual关键字,避免二义性 # 动态联编 在普通函数前面加个virtual就是虚函数就是晚绑定. 在运行阶段才确定调用那个函数