news 2026/4/14 6:29:11

【C++程序设计第7课--继承】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C++程序设计第7课--继承】

引言

本文为C++编程学习者引入继承的概念,通过示例代码的形式展现,希望能帮大家降低入门门槛。内容为个人学习经验总结,本章内容较多,如有疏漏,感谢指正。

一、继承的概念

类的继承:一个新的类从已有类那里获得已有特性的现象。
类的派生:在已有类(父类)上建立一个新的类的现象。
父类:基类,已有的类
子类:派生类,新的类
兄弟类:同一个父类的多个子类。
最远派生类:最远的子类。

本质:将父类的内容拷贝了一份到子类空间。
注意:派生类继承了 基类所有的数据成员 和 成员函数(构造、析构除外)

派生一个子类的语法:
class 子类名 : 权限限定符 父类名1, 权限限定符 父类名2, …
{
类体
};

继承时的权限

隐式向上转换

子类指针可以转换成基类指针(多态涉及)

继承与组合

继承 – is-a 关系:大学生是学生 、虎宝猫是猫

组合 – has-a关系:汽车有发动机、变速器、轮子

二、公有继承 public_inherit

公有继承时,派生类对象只能访问基类 公有成员,派生类内部只能访问基类 公有、保护成员。

示例代码

#include<iostream>usingnamespacestd;classBase{public:floatmoney=12;protected:floatgetMoney(){cout<<__func__<<endl;returnmoney;}private:inteyes=2;};// 从 base 类派生出子类 Subclass,或者是 定义类Subclass 继承于 Base类classSubclass:publicBase{//公有继承public:voidtest(){cout<<money<<endl;cout<<getMoney()<<endl;// cout << eyes << endl; //错误,私有的成员不能被访问}};intmain(){Subclass sub;//定义派生类对象cout<<sub.money<<endl;// cout << sub.getMoney() << endl; //错误,getMoney是受保护的// cout << eyes << endl; //错误,eyes为私有的}

三、保护继承 protected_inherit

保护继承时,派生类对象不能访问基类 任何成员,派生类内部只能访问基类 公有、保护成员。
保护继承时,基类 public权限变成 protected权限。

示例代码

#include<iostream>usingnamespacestd;classBase{public:floatmoney=12;protected:floatgetMoney(){cout<<__func__<<endl;returnmoney;}private:inteyes=2;};classSubclass:protectedBase{//保护继承public:voidtest(){cout<<money<<endl;cout<<getMoney()<<endl;// cout << eyes << endl; //错误,私有的成员不能被访问}};intmain(){Subclass sub;// cout << sub.money << endl;// cout << sub.getMoney() << endl; //错误,getMoney是受保护的// cout << eyes << endl; //错误,eyes为私有的}

四、私有继承 private_inherit

私有继承时,派生类对象不能访问基类 任何成员,派生类内部只能访问基类 公有、保护成员。
私有继承时,基类 public、protected 权限变成 private权限。

示例代码

#include<iostream>usingnamespacestd;classBase{public:floatmoney=12;protected:floatgetMoney(){cout<<__func__<<endl;returnmoney;}intgetEyes(){
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 6:27:53

终极缠论分析指南:如何用ChanlunX插件轻松掌握技术分析

终极缠论分析指南&#xff1a;如何用ChanlunX插件轻松掌握技术分析 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 缠论技术分析从复杂到简单&#xff0c;ChanlunX缠论可视化插件让这一革命性突破成为现实…

作者头像 李华
网站建设 2026/4/14 6:19:09

AudioSeal部署教程:Kubernetes Helm Chart封装AudioSeal服务的生产级实践

AudioSeal部署教程&#xff1a;Kubernetes Helm Chart封装AudioSeal服务的生产级实践 1. 引言 如果你正在寻找一种可靠的方法来追踪AI生成的音频内容&#xff0c;那么Meta开源的AudioSeal系统绝对值得你深入了解。这是一个专门为音频添加和检测水印的工具&#xff0c;简单来说…

作者头像 李华
网站建设 2026/4/14 6:12:11

跨境电商降本增效利器:HY-MT1.5-1.8B翻译模型部署与优化

跨境电商降本增效利器&#xff1a;HY-MT1.5-1.8B翻译模型部署与优化 1. 引言&#xff1a;跨境电商的翻译痛点与解决方案 在跨境电商运营中&#xff0c;语言障碍是影响业务扩展的关键因素。从商品详情页的多语言适配到客服沟通的实时翻译&#xff0c;传统解决方案往往面临三大…

作者头像 李华
网站建设 2026/4/14 6:08:53

第 6 章:Goroutine 的创建与生命周期管理

第三部分&#xff1a;同步原语第 6 章&#xff1a;Goroutine 的创建与生命周期管理6.1 前言Goroutine 是 Go 并发编程的基本执行单元。在前面的章节中&#xff0c;我们了解了 GMP 调度模型如何将轻量级的 goroutine 映射到操作系统线程上执行&#xff0c;也理解了 Go 内存模型如…

作者头像 李华