当前位置: 首页 > 文档资料 > C++大学教程 >

9.7 public、protected 和 private 继承

优质
小牛编辑
129浏览
2023-12-01

从一个基类派生一个类时,继承基类的方式有三种:public、protected 和 private。protected 继承和 private 继承不常用,而且使用时必须相当小心。本书中的范例都是使用 public 继承(第15章将介绍用 private 继承作为复合的另一种形式)。图 9.6 总结了每种继承中派生类对基类成员的访问性。第一列包含基类成员的访问说明符。

基类成员的访问说明符继承类型  
 public 继承protected 继承private 继承
public在派生类中为 public,可以由任何非 static 成员函数、友元函数和非成员函数访问在派生类中为 protected,可以直接由任何非 static 成员函数、友元函数访问在派生类中为 private,可以直接由任何非 static,成员函数、友元函数访问
protecetd在派生类中为 proteced,可以直接由任何非static成员函数访问在派生类中为 protected,可以直接由任何非static成员函数、友元函数访问在派生类中 private,可以直接由任何非static成员函数、友元函数访问
private在派生类中隐藏,可以通过基类的public或protected成员函数由非static成员函数和友元函数访问在派生类中隐藏可以通过基类的public或protected成员函数由非static成员函数和友元函数访问在派生类中隐藏,可以通过基类的public或protected成员函数由非static成员函数和友元函数访问

图 9.6 派生类对基类成员的访问性

从 public 基类派生某个类时,基类的 public 成员会成为派生类的 public 成员,基类的 protected 成员成为派生类的 protected 成员。派生类永远也不能直接访问基类的private成员,但可通过基类 public 或 protected 成员间接访问。

从 protected 基类派生一个类时,基类的 public 成员和 protected 成员成为派生类的 protected 成员。从private基类派生一个类时,基类的 public 成员和 protected 成员成为派生类的 private 成员(例如,函数成为工具函数),provate 和 protected 继承不是 的关系。