简介:
通过继承联系在以前的类构成一种层次关系。通常在层次关系的根部有一个基类,其他类则直接或间接地从基类继承,这些继承得到的类称为类的派生类。
作用:
1、子类拥有父类的所有成员函数和成员变量。
2、子类可以拥有父类没有的成员函数和成员变量。
3、子类是一种特殊的父类。
4、子类对象可以当父类对象使用。
4.1、父类指针指向子类对象。
4.2、子类对象初始化父类对象。
继承中的构造/析构函数的初始化顺序:
父类构造函数->组合类构造函数->子类构造函数->子类析构函数->组合类构造函数->父类析构函数
派生类的访问控制:
1、public继承:父类成员在子类中保持原有访问级别
2、private继承:父类成员在子类中变为private成员
3、protected继承:父类中public成员会变成protected
父类中protected成员仍然为protected
父类中private成员仍然为private
Demo:
#include <iostream> using namespace std; class Base { public: void print(void) { cout << "Base" << endl; } }; class Derived : public Base { public: void print(void) { cout << "Derived" << endl; } }; class Base2 final //防止继承的发生 { public: }; int main(int argc, char **argv) { Derived der; Base *pbase = &der; //父类指针指向子类对象 pbase->print(); Base base = der; //子类对象初始化父类对象 base.print(); der.print(); //当成员函数名一致时,默认使用子类 der.Base::print(); //使用父类print() system("pause"); }