浅谈C++继承方式

STM32在六轴机械臂实时控制中的选型与分层架构设计 嵌入式实时控制系统中,微控制器的选型直接决定运动控制精度与系统可靠性。其核心在于匹配确定性中断响应、低延迟外设协同与工业协议栈支持等硬性指标。STM32凭借Cortex-M内核的NVIC调度能力、成熟HAL库及CAN FD/高级定时器等专用外设,在机电一体化场景中成为伺服控制中枢的首选。相比ESP32等通用MCU,STM32在硬实时性、EMC认证生态和工业总线兼容性上具备不可替代优势。本文围绕GTB六轴机械臂项目,详解基于STM32F407的硬件抽象层配置、FreeRTOS任务调度、事件队列解耦及闭环控制数 阅读详情
简单地说下C++类的3种继承方式,分别是public继承,protected继承,private继承。

最常用的还是public继承。class默认的是private继承,它的member如果没写权限也是默认

private。struct则相反,默认的是public继承。结合下面的图示和代码,对C++的继承就有了

比较清晰的认识了。

继承之后,derived class 继承过后的member的属性就是图中所示。

代码主要从:

1.基类成员对其对象的可见性:  

2. 基类成员对派生类的可见性:  

3. 基类成员对派生类对象的可见性:

这3个方面谈的。

#include <iostream>

class base{
public:
	base(){
		a = 0;
		b = 1;
		c = 2;
	}
	int a;
protected:
	int b;
private:
	int c;
};

class derived1 : public base{//public继承
public:
	void fun(){//derived class可以访问public和protected member
		std::cout<<base::a<<base::b<<std::endl;
	//	std::cout<<base::c;//不能访问
	}
};
class derived2 : protected base{//protected继承
public:
	void fun(){//derived class可以访问public和protected member
		std::cout<<base::a<<base::b<<std::endl;
	 // std::cout<<base::c;//不能访问
	}
};
class derived3 : private base{//private继承
public:
	void fun(){//derived class可以访问public和protected member
		std::cout<<base::a<<base::b<<std::endl;
	 // std::cout<<base::c;//不能访问
	}
};
class derived4 : public derived3{//base的member不能被private继承的派生类的子类访问
public:
	void fun(){
	//	std::cout<<a;
	}
};
class derived5 : base{//默认private继承
	void fun(){//derived class可以访问public和protected member
		std::cout<<base::a<<base::b;
		// std::cout<<base::c;//不能访问
	}	
};
int main(void)
{
	base b1;
	derived1 d1;
	derived2 d2;
	derived3 d3;
	d1.fun();
	d2.fun();
	d3.fun();
	std::cout<<b1.a;//base class Object只能访问public member
	std::cout<<d1.a;//public继承时 derived class Object只能访问base class的public member
	//std::cout<<d1.b<<d1.c;//不能访问
	//std::cout<<d2.a<<d2.b;//protected继承时 derived class Object不能问访base class的member
	//std::cout<<d3.a;//private继承时 derived class Object不能问访base class的member
	return 0;
}


 

【Cadence】Virtuoso@LayoutXL 差分电路版图镜像同步技巧详解 本文详细介绍了在Cadence Virtuoso LayoutXL中实现差分电路版图镜像同步的技巧,包括核心需求、环境配置、分步操作指南及高级技巧。通过使用LayoutXL的Group功能,工程师可以高效保持差分电路的对称性,提升版图迭代效率,确保高速信号处理的稳定性。特别适用于深亚微米工艺下的差分放大器设计。 阅读详情

相关推荐

Vivado FFT IP核配置与实战:FPGA信号处理硬件加速指南

快速傅里叶变换(FFT)是数字信号处理(DSP)中的核心算法,用于将时域信号转换到频域进行分析。其原理基于离散傅里叶变换(DFT),通过蝶形运算的分解与复用,大幅降低了计算复杂度。在工程实践中,软件实现的FFT难以满足高速实时处理的需求,因此硬件加速方案至关重要。FPGA凭借其并行架构和可定制性,成为实现高性能FFT的理想平台。通过集成专用的FFT IP核,如Vivado中的Pipelined Streaming I/O架构,可以构建流水线化的计算引擎,实现极低延迟和高吞吐量的连续数据流处理。这种硬件方案特

weixin_42536863的博客 647

C++继承权限和继承方式

C++继承的一般语法为:class 派生类名:[继承方式] 基类名{    派生类新增加的成员};继承方式限定了基类成员在派生类中的访问权限,包括 public(公有的)、private(私有的)和 protected(受保护的)。此项是可选项,如果不写,默认为 private(成员变量和成员函数默认也是 private)。现在我们知道,public、protected、private 三个关键字...

qq_35787873的博客 993

DFT与机器学习协同设计高效光催化剂:从电子结构到性能预测

密度泛函理论(DFT)作为计算材料学的基石,通过求解Kohn-Sham方程,能够在原子尺度精确预测材料的电子结构、能带和光学性质,为理解光催化等能源材料的微观机理提供了关键视角。其核心价值在于替代传统试错法,实现材料性能的理性设计与机理揭示。在工程实践中,面对高通量筛选的需求,机器学习(ML)技术,特别是长短期记忆网络(LSTM)这类擅长处理序列数据的模型,能够学习从材料描述符到复杂性能(如光谱)的映射关系,实现快速性能预测与优化。这种DFT与ML的结合范式,正广泛应用于新能源材料、半导体器件等领域,用于高

weixin_30662937的博客 662

【C++】继承看这一篇就够了

概念及定义 概念: 1、继承机制是面向对象程序设计使代码可以复用的最重要的手段。 2、允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样实现的类称为派生类/子类。基于实现该类的原有类称为基类/父类 3、继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。 4、继承是类层次设计的复用 定义: 定义方式:class 派生类:继承方式 继承类 继承方式可以是public、protected、private三种,他们在继承基类时,所具有的特性以及表现出的结果也...

weixin_62042704的博客 1997

有限状态机FSM详解(一)

有限状态机在维基百科中的解释是: 有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。 至于为什么要学FSM,FSM可以把模型的多状态、多状态间的转换条件解耦。可以使维护变得容易,代码也更加具有可读性,也更加艺术。 理解有限状态机首先需要理解整个模型。我们把灯的开关作为示例,...

benjonc的博客 5万+

YOLO26原创自研: 魔改Bottleneck,具备多尺度和特征通道融合的结构

魔改Bottleneck,具备多尺度和特征通道融合的结构,该模型在检测准确性方面都取得了良好的效果,尤其在缺陷检测方向。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 317

C++继承基本概念

继承和虚继承、内存中的虚表

weixin_66232462的博客 654

SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇) 第一篇:需求梳理与架构设计:从零搭建SAP主数据校验能力底座

摘要: 本系列博客介绍SAP主数据校验工具的开发和设计,旨在解决物料、供应商、客户等主数据录入不规范、关联缺失和合规性问题。第一篇聚焦需求梳理与架构设计,提出分层技术架构(展示层、业务逻辑层、数据访问层),支持实时校验和批量校验两种模式,并详细说明规则引擎设计、SAP系统对接方案及权限管控逻辑。后续篇章将深入规则引擎实现、接口对接、结果可视化和性能优化,帮助构建集中式、可配置的主数据校验能力,提升SAP数据质量。

baidu_35680696的博客 330

c++的默认继承方式

@c++的默认继承方式是private继承 一级目录 二级目录 三级目录 c++的默认继承方式是private继承 #-----------c++的默认继承方式是private继承 class Person { public: Person() { a = 100; cout << "这里是Person的构造函数" << endl; } ~Person() { cout << "这里是Person的析构函数" << endl

weixin_50994206的博客 3036

Android 13.0 开机启动优化之PMS扫描apk耗时相关功能优化

在android13.0的系统rom定制化开发中,在系统中开发产品时,会根据客户要求内置第三方app,这时如果内置app过多,或者安装的app过多,在系统开机的过程中 在pms扫描安装app的时候,就会比较耗时,这时候就需要优化下pms扫描安装app这块的功能代码,用多线程来实现pms扫描安装app,来加快开机时间,接下来 来实现这个功能

安卓兼职framework和app工程师的博客 1333

YOLOv11 热力图可视化全流程:从模型解释到科研论证,让检测结果“有理可看”

无论是科研中需要严谨的模型解释,还是工业里要高效的缺陷定位,这套方法都能让你在“模型黑箱”与“业务需求”之间架起一座可视化的桥梁。别再让模型决策“无据可依”——现在就动手生成你的第一幅热力图,让 YOLOv11 的每一次检测都“有理可看”,用可视化的力量推动你的 AI 研究与落地走向深入!某团队在论文中通过热力图对比,证明其改进的注意力模块可使模型对小目标的关注区域更精准,实验论证说服力提升 50%;工业质检场景下,热力图帮助工程师快速定位模型漏检缺陷的原因——原来是对某类缺陷的特征关注不足。

m0_71589036的博客 678

C++ 继承详解

C++ 继承详解 C++ 继承介绍 继承中的特点 public 继承 protected 继承 private 继承 在类里面不写是什么类型,默认是 private 的 如果继承时不显示声明是 private,protected,public ... 总结一下三种继承方式 多继承 多继承(环状继承)

wei_Embedded_z的博客 560

把复杂计算推到数据库里:ABAP CDS View Table Function 从原理到落地实践

摘要:本文深入解析ABAP CDS Table Function技术,重点探讨其在复杂业务场景下的应用价值。当CDS View无法满足窗口函数、递归计算等高级需求时,Table Function通过结合CDS类型系统与AMDP的数据库原生计算能力,成为关键解决方案。文章详细介绍了Table Function的架构设计(CDS实体声明+AMDP实现)、客户端处理机制、开发传输流程中的注意事项,并通过航班数据示例展示最小实现闭环。这项技术特别适用于需要将复杂计算下推到数据库层的场景,能显著提升RAP和OData

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2299

浅谈C++类中的三大继承方式:公有继承、私有继承、保护继承

派生类继承了基类的全部数据成员和除了构造函数、析构函数之外的全部函数成员,但是,这些成员的访问属性在派生过程中是可以调整的。从基类继承的成员,其访问属性是由继承方式控制的。这里所说的访问来自两个方面:一是派生类中的新增成员访问从基类继承的成员,二是在派生类的外部(非类族内的成员),通过派生类的对象访问从基类继承的成员。类的继承方式有:公有继承、私有继承、保护继承当类的继承方式为公有继承时:基类的p...

Jack 8423

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

浅谈c++类成员的三种访问控制方式和类继承派生时的三种继承方式

c++类成员有三种访问控制方式:public,protected,private 此外,类继承时也有三种继承方式:public,protected,private 这两套概念有相同的关键词,学习实践中很容易混淆概念,换乱错杂对于c++核心概念的理解。 在此以表格的形式,总结这两套概念,实现对这两套概念、机制的学习泾渭分明,清晰明了。 表1 类成员三种访问控制方式具体访问权利

我的代码小说 1083

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

浅谈C++多态性 & C++虚继承的实现方式与内存布局

C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。   多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphism),字面意思多种形状。   C++多态性是通过虚函数来实现的,虚函数允许子类重新定

long long ago 885

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

浅谈C++的继承与派生

继承与派生的概述 派生类的构造函数与析构函数 解决继承的二义性问题 虚基类

专注技术 2737

【C++】浅谈虚继承

C++——浅谈虚继承 问题1:什么是虚继承?为什么要虚继承? 虚继承 :是面向对象编程中的一种技术,是指一个指定的基类,在继承体系结构中,将其成员数据实例共享给从这个基类型直接或间接派生的其它类。虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。 概念可能不是那么好理解 ,那么我们看如下案例: 上述案例中,羊与骆驼是分别是动物的2个派生类,2者之间都继承了动物的数据和函数,而羊驼...

qq_38145331的博客 1033

C++浅谈组合和继承

C++有三大特性:封装、继承和多态。 之前提到过继承是为了实现代码的复用,如果子类继承了父类那么就会继承父类所有的数据成员及成员函数,在公有继承的时候保持is-a原则,即每个子类的对象也是父类对象。 因此引入了单继承、多继承以及菱形继承等方式。但是正是因为继承太有用、太容易用、很容易实现代码的复用性因此我们需要选择性的继承。 如果A类和B类毫无关系,我们不应该为了让B类多一个功能而去让B继承

persistence_s的博客 3770

C++继承浅谈

C++继承 继承是面向对象设计中很重要的一个环节,当要定义一个类时,但是已经存在一个类成员或者类成员函数都是你需要的,那么你再写一个类就会花掉大量功夫,所以引出继承的概念。 继承——就是在已有类的基础上新建一个类,这个类可以继承基类的成员或者成员函数。 那么什么是基类呢?基类就是已有的类,也叫父类新创建的那个类叫做派生类,也叫子类。 下面来看看一段代码: #include<iostream> using namespace std; //定义一个shape类 class Shape { pub

Kcoren的博客 222

【汇编 C++】C++继承浅谈

继承就是数据的复制struct Master // 父类(基类){int a;int b;};struct Slave:Master // 子类(派生类){int c;int d;};int main(){// 此处下断点查看x的大小(子类的大小)return 0;

qq_52572621的博客 744

浅谈C++之继承机制

以前总是看别人的博客,学到了很多东西,很少自己写博客,为了回馈大家,今天我也来开个张,那么就从我熟悉的C++写起吧。        作为一门出色的面向对象编程语言,C++是博大精深的,其封装、继承和多态的重要特点贯穿始终,接下来谈一谈我对继承的理解。既然是继承,肯定至少存在两个,即被继承者和继承者,也就是C++中的基类(父类)和扩展类(子类)。那么基类和扩展类是如何发生联系的呢?

mengwang1992的博客 1349

浅谈C++继承

关于C++有三大特性:封装、继承和多态 关于继承我们可以实现代码复用减少工作量,在C++里面所谓继承就是在已经存在的类的基础上建立一个新的类。原有的类我们称为基类(父类),新类我们称为派生类(子类),这个新类从已有的类里获取已有类的特性,这种现象叫做继承 派生类的声明为:class +派生类类名+ :+[继承方式]+基类名 例1、公有继承的方式 #include #include clas

persistence_s的博客 528

浅谈c++的继承

/private: 在子类中不可见(完全不能用) 只能防外人 //protected: 在子类中是可见的。既能防外人,也能防儿子基类private成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。比如说父亲的隐私,就算是他儿子,也不能去访问。protected是防外人,privateb不仅是防外人,而且防儿子并不能直接使用,但能通过基类的函数去调用需要经过父亲的同意。

weixin_68256194的博客 228

浅谈c++

浅谈C++ 1.类的定义 为了在程序中创建对象,必须首先定义类.c++语言用保留字class定义一个类,一般形式为: class 类名 { • public: • <共有数据和函数> • protected: • <保护数据和函数> • private: • <私有数据和函数> ​ }; #值得注意的是,右花括号后的分号";"作为类声明的结束标志是不能漏

max_LLL的博客 1197
上一篇: 数据结构之双向循环链表(C++实现)
下一篇: VC发布release版本出现问题的解决方案!
complety
博客等级 码龄16年 55粉丝 12原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值