C++中派生类对基类成员的三种访问规则

【C++ 继承】派生类操作内存访问基类私有成员 阅读详情

C++中派生类对基类成员的访问形式有两种:
1.内部访问:派生类新增成员对从基类继承过来成员进行访问
2.对象访问:在派生类外部,通过派生类对象对从基类继承过来的成员进行访问

下面看看派生类对基类的成员的访问规则:
1.派生类私有继承了基类规则(private)
当类的继承方式是私有继承(private)时,基类中的public和protected成员被继承后称为派生类的私有成员,派生类的成员可以直接访问他们,但是在类的外部,通过派生类的对象是不可以对其进行访问的。还有基类中的私有成员在派生类中是不可以直接访问的,无论是派生类的成员还是派生类的对象都无法访问基类中的私有成员。但可以通过基类提供的public 函数对其进行间接的访问。
在这里插入图片描述
2.派生类保护继承了基类规则:(protected)
当类的继承方式是保护继承(protected)时,基类中的public和protected成员被继承后称为派生类的保护成员,派生类的成员可以直接访问他们,但是在类的外部,通过派生类的对象是不可以对其进行访问的。还有基类中的私有成员在派生类中是不可以直接访问的,无论是派生类的成员还是派生类的对象都无法访问基类中的私有成员。但可以通过基类提供的public 函数对其进行间接的访问。
在这里插入图片描述
3.派生类公有继承了基类规则:(public)
当类的继承方式是公有继承(public)时,基类中的public和protected成员被继承后称为派生类的公有成员和保护成员,派生类的成员可以直接访问他们,但是在类的外部,通过派生类的对象只能进行访问继承过来的public成员。还有基类中的私有成员在派生类中是不可以直接访问的,无论是派生类的成员还是派生类的对象都无法访问基类中的私有成员。但可以通过基类提供的public 函数对其进行间接的访问。
在这里插入图片描述

基础备忘:派生类直接访问基类的私有成员 派生类不能直接访问基类的私有成员,若要访问必须使用基类的接口,即通过其成员函数。实现方法有如下两种: 1.在基类的声明中增加保护成员,将基类中提供给派生类访问的私有成员定义为保护成员。 2.将需要访问基类私有成员的派生类成员函数声明为友元。 #include using namespace std; class Base { friend class Derived2;//f 阅读详情

相关推荐

C++中的派生类对基类成员的访问问题

C++中派生类对基类成员的访问形式主要有以下两种: 1、内部访问:由派生类中新增成员对基类继承来的成员的访问。 2、对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问。今天给大家介绍在3中继承方式下,派生类对基类成员的访问规则。 1、私有继承的访问规则 当类的继承方式为私有继承时,基类的public成员和protected成员被继承后成为派生类的private成员,派生类的其它成员可以直接访问它们,但是在类的外部通过派生类的对象无法访问。基类的private成员在私有派生类中是不可直接访问的

ujnyyj的博客 1万+

派生类成员对基类成员的访问权限

继承方式基类成员在派生类的访问权限的影响

HVACoder 5352

C++中派生类访问控制

在C++中,派生类继承了基类的所有成员(包括公有成员、保护成员和私有成员),但是对于这些成员的访问权限却有所不同。公有继承是最常见的继承方式,派生类的成员函数可以访问基类的公有成员和保护成员,但不能直接访问基类的私有成员。私有继承是将基类的所有成员都变为派生类的私有成员,因此派生类不仅不能直接访问基类的公有成员和保护成员,而且其他类不能访问派生类内部继承的基类成员。保护继承与私有继承类似,但基类的公有成员和保护成员变为了派生类的保护成员,其他类同样无法访问派生类内部继承的基类成员。C++中派生类访问控制。

CyberNova的博客 368

C++类的公有/私有继承,基类的私有成员在派生类中访问情况

首先,基类的私有成员是会被派生类继承的,但是不能被派生类访问;从物理上讲是复制过来了,在内存中确实有复制。但是从程序上看是被屏蔽了,不能直接调用。 其次,对于基类public类型的成员变量,无论是公有继承还是私有继承,都可以直接在派生类中定义的成员函数直接访问。 对于基类private类型的成员变量,无论是公有继承还是私有继承,在派生类中定义的成员函数都不能直接访问基类的私有成员,只能通过基类的...

$firecat利白的代码足迹$ 2万+

手把手教你用AirSim和Unreal4在Ubuntu上创建自定义无人机仿真场景

本指南详细介绍了如何在Ubuntu系统上使用AirSim和Unreal Engine 4搭建高精度无人机仿真环境。从硬件配置、驱动安装到Unreal Engine编译和AirSim集成,手把手教你创建自定义场景,适用于算法验证和开发测试。

y7z8a的博客 256

Xshell 连接 kali 虚拟机教程

启动ssh服务,启动后重新查看ssh服务状态,如下图active(running)正常。至此便可以直接使用Xshell登录kali系统了。至此虚拟机已经可以上网。-查看ssh服务状态。

qq_40726937的博客 2219

c++中派生类对基类成员的三种访问规则(转)

C++中派生类对基类成员的访问形式主要有以下两种:1、内部访问:由派生类中新增成员对基类继承来的成员的访问。2、对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问。今天给大家介绍在3中继承方式下,派生类对基类成员的访问规则。 1、私有继承的访问规则当类的继承方式为私有继承时,基类的public成员和protected成员被继承后成为派生类的private成员,派生...

anrong5474的博客 208

3线SWD接线终极指南:用Jlink调试非3.3V设备的5个关键细节

本文详细解析了使用Jlink调试非3.3V设备时,3线SWD接线的5个关键细节。核心在于正确理解并连接Vref引脚以实现电压适配,避免供电冲突,并掌握精简接线法与固件修复技巧。文章以STM32F205等芯片为例,指导开发者安全、高效地进行混合电压调试。

e4f5g6h7的博客 437

实验六-派生类与继承

实验目的: 1.掌握派生类的声明方法和派生类构造函数的定义方法; 2.掌握不同方式下,基类成员在派生类中的访问属性和访问规则; 实验内容: 1.输入下列程序,观察输出结果; #include "sy7.h" using namespace std; class Base { public: void setx(int i) { x = i; } int getx() { return x; } public: int x; }; class Derived :public Bas

m0_47696752的博客 1087

UE5动画革命:如何用Motion Matching技术让你的游戏角色动作更流畅(附实战配置)

本文深入解析了UE5中Motion Matching技术的实战配置与应用。通过对比传统动画状态机的局限,详细阐述了如何构建动画数据库、在UE5中配置Pose Search Database及动画蓝图,并探讨了与IK融合、性能优化等进阶策略。该技术能显著提升游戏角色动作的流畅度与真实感,是下一代动画解决方案的核心。

weixin_29075633的博客 862

RenderDoc实战:5分钟搞定安卓Vulkan应用抓帧(含常见连接失败排查)

本文详细介绍了如何使用RenderDoc工具对安卓Vulkan应用进行抓帧分析,包括环境配置、完整抓帧流程及常见连接问题的解决方案。通过实战案例和高级技巧,帮助开发者快速定位渲染问题和性能瓶颈,提升移动图形开发效率。

weixin_28318011的博客 281

C++-类-继承和派生2:派生类访问控制

不可访问基类protected属性。不可访问基类protected属性。不可访问基类protected属性。不可访问基类protected属性。可访问基类protected属性。可访问基类protected属性。可访问基类protected属性。不可访问基类private属性。不可访问基类private属性。不可访问基类private属性。不可访问基类private属性。不可访问基类private属性。不可访问基类private属性。不可访问基类private属性。不可访问基类private属性。

u013250861的博客 552

TMC5160电机驱动芯片实战:从模式选择到参数配置全解析

本文深入解析TMC5160电机驱动芯片的实战应用,涵盖三种核心工作模式的选择策略与参数配置。详细介绍了全功能运动控制、外部脉冲驱动及独立驱动模式的应用场景与配置要点,并提供了电流控制、静音优化、SPI通信及高级功能(如StallGuard2)的调优指南,帮助开发者充分发挥其高精度、低噪音性能。

weixin_29179311的博客 322

【c++语言程序设计】公有继承,保护继承,私有继承

在派生类中,派生类会继承基类的私有和保护成员,但外部代码(包括友元函数)无法直接访问这些成员,除非友元函数也声明为派生类的友元函数。基类的保护成员:在派生类中仍然是保护成员,不能通过派生类的对象直接访问,但可以在派生类的成员函数中访问。基类的公有成员:在派生类中变为保护成员,不能通过派生类的对象直接访问,但可以在派生类的成员函数中访问。基类的私有成员:在派生类中无法直接访问,但派生类可以通过基类的公有或保护函数访问。基类的公有成员:在派生类中仍然是公有成员,可以通过派生类的对象直接访问。

学习中 1328

AI Agent在营销领域的实战策略

本文从第一性原理出发,系统性拆解AI Agent在营销领域的落地逻辑、技术架构、实现方案与实战策略。全文覆盖从基础概念到高级优化的全层级知识:底层理论层面推导营销Agent的效用函数与决策框架;技术架构层面提出"感知-记忆-规划-行动-反思"五组件可落地架构;实践层面提供生产级代码实现、多行业案例与ROI提升方法论;前沿层面探讨多Agent协同、世界模型仿真等下一代技术方向。

操作系统内核探秘的博客 227

音乐生成 - 使用LSTM或Transformer模型进行音乐生成,如MIDI音乐生成。

在本篇博客中,我们将介绍如何使用LSTM和Transformer模型生成MIDI音乐。我们将首先概述音乐生成的一般流程,然后深入了解LSTM和Transformer模型的特点和实现。最后,我们将通过Python代码演示如何使用这两种模型生成MIDI音乐。

斌擎科技 1720

C++中public、protected、private三种权限继承详解

文章目录C++中public、protected、private三种权限继承详解publicprivateprotected总结 C++中public、protected、private三种权限继承详解 先看一下C++在继承中的访问权限 权限/作用域 全局 派生类 当前类 private ✖ ✖ ✔ protected ✖ ✔ ✔ public ✔ ✔ ✔ public public继承是一种最简单的继承,基类的成员在派生类中保持原有的权限不会被更改。 public继承示例

不可以太晚睡 4526

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C++学习笔记_1:派生类与基类关系

public继承: 派生类成员可以访问基类的public和protected成员不能访问private成员;          派生类对象只能访问基类的public成员 protected继承: 派生类成员可以访问基类的public和protected成员不能访问private成员:    派生类对象不能访问基类的任何成员 private继承: 派生类成员可以访问基类的public和prote

gongyuan073的专栏 877

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C++中继承方式与访问标号的学习笔记

C++中继承方式与访问标号的学习笔记 1     无虚函数的情况 基类有一个public函数,一个protected函数,一个private函数: class A { public: voidf() { cout<<"A::f"<<endl; g(); h(); } protected: void g() {cout<

企鹅的自我修养 6333

c++中的访问说明符

之前一直知道protected是介于private和public两种访问权限的中间者,影响友元和派生类的访问权限。但是对于具体的细节还有一些疑惑的地方,今天仔细研究了一下c++primer上关于这一部分的解释,简单做个总结如下。 首先我们只考虑派生列表中使用的访问说明符,即所谓的派生访问说明符。对于基类B中的不管是public,private还是protected成员,我们有以下的原则。 1.

u011575841的专栏 2809

C++:public、protected、private继承后的访问权限

https://blog.youkuaiyun.com/casky237/article/details/54766881?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.channel_param

weixin_43991826的博客 476
上一篇: C++基础知识五
下一篇: C++基础知识六
冬雪如春
博客等级 码龄8年 412粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值