三种继承
继承格式: class 派生类名:public/protect/private 基类名 {……}
public 继承:
1. 不改变父类成员的继承性质,父类 public 的成员在子类中仍然是 public 的,父类
protected 的成员在子类中仍然是 protected 的,父类 private 的成员在子类中仍然是
private 的
2. 派生类的成员函数可以访问基类的公有成员和保护成员,但是不能访问基类的私有
成员,基类的私有和保护成员对对象是不可见的,对象只能直接访问基类的公有对
象
3. C++面向对象编程中一条重要的规则是:公有继承意味着 "是一个" ,当写下类 D 从
类 B 公有继承时,实际上是在告诉编译器:类型 D 的每一个对象也是类型 B 的一个
对象,但反之不成立;即:B 表示一个比 D 更广泛的概念,D 表示一个比 B 更特定
概念;就是在声明:任何可以使用类型 B 的对象的地方,类型 D 的对象也可以使用,
因为每个类型 D 的对象是一个类型 B 的对象。相反,如果需要一个类型 D 的对象,
类型 B 的对象就不行:每个 D "是一个" B, 但反之不成立
4. 权限:
(1)派生类成员只能访问基类中的 public/protected 成员;
(2)派生类的对象只能访问基类中的 public 成员。
protected 继承:
1. 父类 public 类型的成员在子类中变为 protected 性质
2. 派生类的成员函数可以访问基类的公有成员和保护成员,但是不能访问基类的私有成
员,基类的私有成员,保护成员和公有成员对对象是不可见的
3. protected 对于子女、朋友来说,就是 public 的,可以自由使用,没有任何限制,而对
于其他的外部 class,protected 就变成 private
4. 权限:
(1)派生类的成员只能访问基类中的 public/protected 成员;
(2)派生类的对象不能访问基类中的任何的成员。
private 继承:
1. 父类所有成员在被子类中都变成或者保留为 private 性质的
2. 派生类的成员函数可以访问基类的公有成员和保护成员,但是不能访问基类的私有
成员,基类的私有成员,保护成员和公有成员对对象是不可见的
3. private 表示私有,私有的意思就是除了 class 自己之外,任何人都不可以直接使用,