C++中的继承

CPP中的继承语法 阅读详情

1.继承的定义

定义一个类的时候想要重用一个已经有了的类,就可以使用继承,
class Newclass:public oldclass{
//新增加的成员
};
新类会继承旧类的全部成员,成为新类中的成员。新类还可以增加新的成员,实现对旧类的扩展。
继承方式可以有public/private/protected三种,一般使用public方式,旧类称为“父类”或者“基类”,新类称为“子类”或者“派生类”。无论哪种继承方式都是把父类的成员全部继承**(除过私有成员)**(复制)到子类中成为子类的成员,其中私有成员在子类中不能直接访问,特权是父类可以用protected来作为成员访问限制,这种成员称为保护成员。
这种成员在外跟private一样,但在子类中允许被直接访问。

2.不同继承方式区别

不同继承方式区别在于继承到子类之后,作为子类的成员对外的访问限制,private方式继承过来后所有成员都成为子类的私有成员,protected方式继承过来之后。原来私有的还是私有的,原来保护类和公开类的成员都成为子类的保护成员了,一般使用public方式继承,继承过来的成员到子类中后保持原有的访问限制不变,默认是private方式。

#include<iostream>
#include<string>
using namespace std;
class Person{
protected:
string name;
public:
void setname(const char *n ){
	name=n;
}
void eat(string food){
	cout<<name<<"吃"<<food<<endl;
}
void speak(string words){
	cout<<name<<"说:\""<<words<<"\"\n";
	}
};
class  Teacher:public Person{
	string course;
public:
	void teach(string someclass){
	cout<<name<<"给"<<someclass<<"班讲"<<course;
}
	void setcourse(string c){
		course=c;
	}
};
int main(){
	Person a;
	a.setname("芙蓉");
	a.eat("水煮鱼");
	a.speak("我会跳舞");
	Teacher c;
	c.setname("权哥");
	c.eat("炸酱面");
	c.speak("大家好才是真的好");
	c.teach("csd1212");
	c.setcourse("C++");
}
**程序运行结果如下**

[南大ICS-PA2] 字符串处理函数和printf实现 [南大ICS-PA2] 程序、运行时环境与AM 字符串处理函数和printf实现 阅读详情

相关推荐

VSCode终端打不开?3分钟搞定Windows下Terminal配置(附最新JSON设置方法)

本文针对Windows系统下VSCode终端无法启动的常见问题,提供了详细的诊断与解决方案。核心在于更新已弃用的旧配置,采用最新的JSON设置方法,通过定义`terminal.integrated.profiles.windows`和指定`terminal.integrated.defaultProfile.windows`,快速修复并优化终端配置,实现三分钟内恢复正常使用。

flower的专栏 740

继承简单代码实现

class Haha{     void haha(){         System.out.println("大笑");     } } class Amineal {     void eat(){         System.out.println("吃");     } } //下面这段代码实现是有问题的,在Java中继承只能单继承,也就是只能继承一个父类

wacjx的博客 1805

YOLO详解

本文参考知乎 https://zhuanlan.zhihu.com/p/25236464 1. YOLO的创新点 YOLO将物体检测作为回归问题求解。基于一个单独的end-to-end网络,完成从原始图像的输入到物体位置和类别的输出。 从网络设计上,YOLO与two steps的目标检测方法如RCNN、Fast RCNN和Faster RCNN的区别如下: YOLO训练和检测均是在一个单独网...

UnknownPlayer的博客 9943

[C++] 一段代码搞清楚C++ 3种继承

class A { public: int x; protected: int y; private: int z; }; class B : public A { // x is public // y is protected // z is not accessible from B }; class C : protected A { ...

sai_j的博客 320

微信小程序 - 最新详细实现跳转打开第三方网站方法流程及示例代码,在小程序内直接打开H5页面或微信公众号文章后台业务域名配置及下载校验文件上传服务器,嵌入外部网站跳转第三方h5网页(详细配置及代码)

微信小程序,打开第三方网站,放校验文件,怎么配置业务域名,后台配置,怎么打开外部没有关联的网站,小程序直接打开公众号文章,指定页面,跳转第三方url,跳转到外部网站,小程序跳转到任意外部网页,网站链接,跳转到其他网页(外部链接),小程序嵌入外部h5链接,校验文件怎么放到对方服务器上,要跳转到网站没权限放过去,校验文件验证域名,把校验文件放到对面网站,别人的服务器也打不开没权限怎么放呢,勾选不校验合法域名,txt,打不开别人的网页怎么办,真机调试打不开,无法跳转,有什么其他办法不放校验文件吗,别人不可能同意,

🏆 前端领域优质创作者 1万+

【深度学习驱动流体力学】采集OpenFOAM仿真数据作为AI模型训练数据集与卷积神经网络搭建到预测(一站式完整代码实现)

采集OpenFOAM仿真数据作为AI模型训练数据集与卷积神经网络搭建到预测(一站式完整代码实现)

源代码杀手的博客 1413

【c++系列】简单的继承实例

代码 #include using namespace std; class CFruit{ public: virtual void display(){ cout<<"I am a fruit!"<<endl; } protected: string name; }; class CApple:public CFruit{ public: void display(){

SNS程飞的专栏 1106

PSO-BP和BP多输入多输出回归预测模型 matlab (多输入多输出)

PSO-BP和BP多输入多输出回归预测模型 matlab (多输入多输出)

算法如诗的博客 257

cpp中的继承

本篇介绍:cpp中的继承与虚拟继承

qq_61847875的博客 897

使用pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集

superpoint与superglue的组合可以实现基于深度学习的图像配准,官方发布的superpoint与superglue模型均基于coco数据训练,与业务中的实际数据或许存在差距,为此实现基于开源的pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集。然而,在训练pytorch-superpoint有诸多细节需要优化,特此整理成技术文档。本文档描述了实验pytorch-superpoint与pytorch-superglue项目训练自己的图像配准模型。

a486259的博客 9502

人工智能训练师三级考试题型全解析|190道真题样例+30天备考路线

人工智能训练师三级考试并不神秘:理论考190道选择题(刷题就能过),实操考代码+方案设计(练练就会)。核心是花时间——30天系统备考,足以从容通过。如果你想从零开始系统备考,覆盖所有考点和实操技能,欢迎查看我的专栏:📖《人工智能训练师三级·从零到拿证完全指南》80篇系统化内容,覆盖报名、备考、冲刺、拿证全流程六大模块知识点逐个击破,每个考点都讲透实操代码题手把手教学,附带完整参考代码高频考点速记 + 易错题精讲 + 3套模拟试卷30天备考计划 + 冲刺复习策略。

白话机器学习 6053

CPP中的继承关系

//继承的好处:减少代码的重复率 /* * 语法:class 子类 :继承方式 父类 子类 也称为派生类 基类 也称为基类 */ //继承中的对象模型 #include<iostream> using namespace std; class Base { public: int m_A; protected: int m_B; private: int m_C; }; class Son :public Base { public: int m_D; }; void

weixin_51599540的博客 564

36、真核生物RNA PolII启动子预测相关研究

本文综述了真核生物RNA聚合酶II启动子预测的研究进展,涵盖转录调控机制、核心启动子元件(如TATA框、INR、GC框)、转录因子结合位点预测的挑战与方法。介绍了基于权重矩阵、神经网络和隐马尔可夫模型等多种启动子预测算法,并探讨了启动子分类策略及评分加权方法。通过Hertz-Stormo-Hartzell流程和基因微阵列分析实例,展示了如何识别保守调控序列。文章还总结了当前预测技术的局限性,提出了整合多组学数据、开发深度学习模型、加强实验验证等未来研究方向,旨在提升启动子识别的准确性与生物学意义。

palm99的专栏 187

【C++】C++中的继承

1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。 class Person { public: void Pr...

yulong__li的博客 578

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

关于CPP中的继承

(1)派生类调用基类的构造函数构造基类那部分成员,如果基类没有默认构造函数,则需要在派生类初始化列表阶段显式调用构造函数。(4)派生类的析构函数需要调用基类的析构函数清理基类成员,因为只有这样才能保证派生类对象先清理派生类成员再清理基类成员。派生类对象可以把成员赋值给基类对象/基类指针/基类引用,形象说法叫切片,意味着是把派生类中基类的那部分赋值切过去给基类。继承是能够实效代码复用的一种手段,呈现了面向对象程序设计的层次结构,体现了由简单到复杂,继承是类设计层次的复用。(1)基类和派生类都有独立的作用域。

2201_75498147的博客 445

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C++ 中的继承

继承1 什么是继承1.1 继承的概念1.2 继承的定义1.2.1 定义格式1.2.2 继承关系和访问限定符1.2.3 继承基类成员访问方式的变化2 基类(父类)对象和派生类(子类)对象之间的赋值转换3 继承中的作用域4 派生类(子类)的默认成员函数5 继承与友元6 继承与静态成员7 复杂的菱形继承以及菱形虚拟继承7.1 单继承7.2 多继承7.3 菱形继承7.3.1 菱形继承的问题7.3.2 如何解决7.3.3 虚拟继承解决数据冗余和二义性的原理8 继承的扩展和总结8.1 继承和组合 1 什么是继承 1.1

CZHLNN的博客 2032

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C++中的继承/虚继承原理

继承是一种提高代码复用率的重要方式,它允许程序员在保持原有类的特性的基础上去增加其他特性、功能,这样的类叫做派生类,继承是类设计层次的复用。public:protected:string _name = "牡丹";Student s;Teacher t;s.Print();t.Print();return 0;运行结果为:明明Student和Teacher当中都没有Print()

AkieMo的博客 2954

继承与多态实战:CPP-Crash-Course中的高级C++特性

在C++编程中,继承与多态是面向对象编程的核心特性,它们能够显著提升代码的复用性和扩展性。CPP-Crash-Course项目通过清晰的示例代码,展示了如何在实际开发中应用这些高级特性。本文将带你深入理解继承与多态的概念,并通过项目中的实例代码,掌握它们的实际应用技巧。 ## 继承:代码复用的基石 继承允许我们创建新类(派生类)来继承现有类(基类)的属性和方法,从而实现代码的复用和扩展。在CP

gitblog_00025的博客 819

【cpp中的继承】

cpp的继承关系,如何使用继承,怎么解决菱形继承

qq_74047688的博客 830
上一篇: C++ 函数中的哑元
下一篇: C#串口通信,清除缓存区数据,发送区接收区
WinrenJoe
博客等级 码龄8年 67粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值