C++继承详解:单继承、多继承与访问权限
需积分: 9 41 浏览量
更新于2024-07-23
收藏 1.42MB PDF 举报
"C++实现继承涉及继承的概念、种类和语法,以及继承方式对访问权限的影响。"
在C++中,继承是一种重要的面向对象编程特性,它允许一个类(子类或派生类)从另一个类(父类或基类)继承属性和行为。通过继承,子类可以复用父类的功能,并在此基础上进行扩展,降低了代码的重复性,提高了代码的可维护性和可重用性。
1. 继承的种类:
- 单继承:一个子类只从一个父类继承。
- 多继承:一个子类可以从多个父类继承,这样可以获得多个父类的特性。
2. 继承方式:
- 公有继承(public):基类的公有成员和保护成员在派生类中保持原有访问属性,私有成员仍然私有。这种方式下,基类的公有成员在派生类中仍然是公有的,保护成员保持保护状态。
- 保护继承(protected):基类的公有和保护成员在派生类中变为保护成员,私有成员仍私有。这提供了某种程度的封装,限制了外部访问。
- 私有继承(private):基类的公有和保护成员在派生类中变成私有,私有成员仍私有。这意味着基类的公有和保护成员在派生类中无法直接访问。
3. 继承语法:
使用`class 派生类名: 继承方式 基类名`定义继承关系,如`class DerivedClass : public BaseClass`表示公共继承。
4. 继承的三项工作内容:
- 吸收:子类继承了父类的成员。
- 改造:子类可以通过覆盖或重定义父类的方法来修改其行为。
- 新增:子类可以添加自己的成员变量和方法。
5. 访问权限:
- `public`:类内外都可以无限制访问。
- `private`:仅供类内部访问,对外部隐藏。
- `protected`:与`private`类似,但允许派生类访问。
6. 内存布局:
子类对象的内存包含基类子对象和子类新增部分,基类子对象总是位于子类对象的前面。这意味着子类对象的大小至少等于基类对象的大小加上子类新增部分的大小。
7. 成员访问:
- 对象访问:对象只能访问公有和保护成员,不能直接访问私有成员。
- 类内成员间访问:私有成员仅能被类内的成员访问,保护成员可以被类内和派生类的成员访问,公有成员可以被所有成员访问。
8. 继承方式与访问权限的关系:
继承方式影响了基类成员在派生类中的访问权限,而访问权限关键字则控制了类成员的访问性。继承方式决定了类之间的关系,访问权限则体现了封装的原则。
了解这些基本概念后,开发者可以利用C++的继承机制创建更加复杂和层次化的类结构,实现代码的高效设计和管理。在实际编程中,选择合适的继承方式和访问权限是确保程序可维护性和安全性的重要步骤。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-20 上传
2021-01-20 上传
2019-05-01 上传
sxy0604
- 粉丝: 0
- 资源: 3
最新资源
- H3C_iNode_PC_7.3_linux E0548
- becquerel:Becquerel是用于分析核光谱测量的Python软件包
- comp_graf_laba1
- glsl-map:将一个范围内的值映射到另一范围内
- 计算机科学知识:计算机基础知识:计算机网络,操作系统,数据库,数据结构与算法,计算机组成原理,软件工程,设计模式,代码外的生存之道,开发常用工具
- arrowdb:用于在所有制造商中查找箭头的数据库
- js代码-js插入新列表时剔除掉全列表已有的项目
- Warpoint:基于团队的2D多人CTH独立游戏
- signsend:Zetakey登录并发送-Webapp。 它使用具有Canvas支持HTML5浏览器(例如Zetakey浏览器www.zetakey.com)捕获签名,并将其发送到电子邮件地址
- 美萍瑜珈管理系统标准版
- vagrant-spree:使用Vagrant的Spree开发环境
- nano-4.0.tar.gz
- let-prove-blocking-queue:以多种方式证明阻塞队列的死锁状态
- albumtrackr:利用ASP.Net Core Web API的Android应用,由Ryan Deering和James Lynam构建
- 剧本
- java代码-编写一个程序判断字符串“Tom”是否在另一个字符串“I am Tom, I am from China”中出现。