继承 基类 派生类 父类 子类 继承方式 公有继承 class A : public B public的继承到public(可访问),protected的继承到protected(可访问),private无法访问 保护继承 class A : protected B public的继承到protected(可访问),protected的继承到protected(可访问),private无法访问 私有继承 class A : private B public的继承到private(可访问),protected的继承到private(可访问),private无法访问 覆盖 隐藏 隐藏 父子关系 成员同名 在实际应用中不常用 子类只能调用子类的同名函数(函数名) 可以通过son.father::xxx(); 覆盖 virtual Is A 子类对象是父类的一个对象 Has A 包含,车子包含轮胎 多继承和多重继承 多重继承:层次 多继承:次数 多重继承 class Person { class Soldier : public Person { class Infantry : public Soldier { 多继承 class MigrantWorker : public Farmer, public Worker 多重继承和多继承的烦恼 菱形继承:包含两者,数据冗余(虚继承) 人 工人 农民 农民工 class Worker : virtual public Person {}; // 虚继承