c++学习——继承

8.1 继承的基本概念

  类的继承是在现有类的基础之上,创建新类的机制。
  称现有的类为基类,新建立的类为派生类。也可以表述为“父类—子类”或者“超类—子类”。

8.2 定义基类和派生类

8.2.1 简单的继承和派生

  •派生类继承了基类的所有成员,派生类对象包含基类的数据成员,也可以直接调用基类公有函数。
  •派生类对象不可以直接访问基类的私有成员
  •派生类对象可以通过基类的公有函数访问基类的私有成员

8.2.2 定义派生类

  派生类定义的语法格式是

class 派生类名 :  继承方式 基类1, 继承方式 基类2,…,继承方式 基类n
{
    派生类成员声明;
};

  “继承方式”是 public、protected 和 private 三者之一。选择不同的继承方式,会影响基类成员在派生类中的访问控制属性。
  派生类继承了基类中的所有成员,但不包括构造函数、析构函数和默认赋值运算符。

8.2.3 继承方式和访问控制

不同继承方式决定的不同访问控制权限体现在:
  (1)派生类的成员函数对其继承的基类成员的访问控制:无论是哪一种继承方式,派生类成员函数都可以访问基类的 public 成员和 protected 成员,但都不能访问基类的 private 成员。
  (2)其它模块通过派生类对象对其继承的基类成员的访问控制:只有 public 继承的派生类的对象可以访问基类 public 成员,protected 和 private 继承的派生类对象不能访问基类的 public 成员。
1. 公有继承
公有继承的派生类定义形式:

class 派生类名:public 基类名
{
    派生类新成员定义;
};

  基类成员在派生类中的访问属性不变
  派生类的成员函数可以访问基类的公有成员保护成员,不能访问基类的私有成员
  派生类以外的其它函数可以通过派生类的对象,访问从基类继承的公有成员, 但不能访问从基类继承的保护成员私有成员

公有继承

2. 私有继承
私有继承的派生类定义形式:

class 派生类名:private 基类名
{
    派生类新成员定义;
};

  基类成员在派生类中的访问属性都变成 private
  派生类的成员函数可以访问基类的公有成员保护成员,不能访问基类的私有成员;
  派生类以外的其它函数不能通过派生类的对象,访问从基类继承的任何成员。

私有继承

私有继承和保护继承的区别


私有继承和保护继承的区别

继承方式影响访问属性


继承方式影响访问控制
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容