ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[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就是虚函数就是晚绑定. 在运行阶段才确定调用那个函数