c++的面向对象有三种实现方式:
1、复合 composition has-a class A 拥有class B
2、委托 delegation composition by reference class A 中有指针成员指向 class B
3、继承 Inheritance is-a class B 是class A的派生
继承与虚函数
成员函数分为 non-virtual , virtual , pure virtual 函数三种
non-virtual 函数 : 不希望派生类重新定义(override)它
vitual 函数 : 希望派生类重新定义它,但是拥有一个默认定义,也允许派生类使用默认定义而不定义它
pure virtual 函数: 派生类必须重新定义它,因为它没有默认定义
继承的访问控制:
public 公有继承 (struct的缺省继承方式) 基类的public成员变成派生类的public成员,基类的protected成员变成派生类的protected成员
private 私有继承 (class 的缺省继承方式)基类的public成员和protected成员变成派生类的private成员
protected 保护继承 基类的public和protected成员变成派生类中的protected成员
注意: 任何一种继承方式,派生类都不能直接access基类的private成员。