C++基类与派生类中同名成员的调用

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

实例:

#include <iostream>
using namespace std;
class parent
{
public:
	void print(void)
	{
		cout << "parent a=:"<<a<< endl;
	}
public:
	int a;
private:
	int b;
protected:
	int d;
};
class child3 : public parent
{
public:
	int a;
	int b;
	int d;
	void print(void)
	{
		cout << " child3 a=:" << a << endl;
	}
private:
	int c;

protected:
};
int main()
{
	child3 oop;
	oop.a = 10;
	oop.parent::a = 100;
	oop.print();
	oop.parent::print();
	system("pause");
	return 0;
}

结论:

1 当派生类成员变量和基类成员变量同名时,子类成员变量依然从基类集成同名成员变量。

2 在子类中同伙作用于解析符::进行同名成员区分(在派生类中使用基类同名成员,显示地使用同名限定符)

如上例,子类a与基类的a同名,在主函数中调用时直接用::进行解析,默认情况下:对象.a是子类的a.

C++中派生类成员变量和基类成员变量同名问题 1.当派生类存在与基类同名的成员变量时候,派生类的成员会隐藏基类成员,但派生类中存在基类成员的拷贝,要显示的访问BASE::date member #include &lt;iostream&gt; using namespace std; class Base { public: int a = 10; void print() { cout &... 阅读详情

相关推荐

基类与派生类的作用域

先把定义的类列出来 class Base { public: Base(int i = 0):val(i){} int getVal(){return val;}; int getVal1(){return val;} void print(){cout<<"base"<<endl;} void getInt(){cout<<"do nothing"<<endl;} virtual

thefutureisour的专栏 3148

【C++】 继承与派生 知识点小结

本文参考自网络,由作者编辑整理,侵删歉。 继承的两种情况: 1.单继承:一个派生类只从一个基类派生。 2.多重继承:一个派生类可以从多个基类派生。 基类与派生类的关系: 派生类是基类的具体化,而基类则是派生类的抽象。 派生类的定义格式: class &lt;派生类名&gt;:&lt;继承方式&gt; &lt;基类名1&gt; , ... , &lt;继承方式&gt; &lt;基类...

WINGREZ‘S BLOG 2427

c++基类与派生类成员同名问题

下面是一个平时的上机实验题 1, 定义一个基类BaseClass,从它派生出类DerivedClass。BaseClass里有成员函数f1(),f2(),DerivedClass也有成员函数f1(),f2()。在主函数中声明一个DerivedClass的对象,分别用DerivedClass的对象以及BaseClass和DerivedClass的指针调用f1(),f2(),观察运行结果。 按照题目要...

xuese_luochen的博客 2078

C++基类指针或引用指向或引用派生类对象(实现动态多态四种手段)父类指针访问子类成员变量(需要dynamic_cast)

因此,p1->speak()会调用Cat类中的speak函数,输出"Cat speaks",p2->speak()会调用Dog类中的speak函数,输出"Dog speaks"。在main函数中,我们使用Animal指针p指向Cat对象,然后使用dynamic_cast运算符将p转换为Cat指针q,从而访问Cat类中的name成员变量。如果我们不使用父类指针指向子类对象,而是直接使用Cat和Dog对象,那么我们就需要分别调用它们的speak函数,这样会导致代码的重复和冗余,不利于代码的扩展和维护。

Dontla的博客 4366

手把手教你逆向分析某里系bx-ua参数(以225版本为例)

本文详细解析了某里系应用bx-ua参数的逆向工程实战方法,重点拆解其三层加密体系(二进制加密、字符替换和Base64编码)。通过工具链配置和实战案例,帮助开发者掌握逆向分析技巧,适用于合法合规的安全研究和加密技术评估场景。

weixin_33220360的博客 414

告别‘小爱同学’:用ESP32-S3和esp-sr SDK,从零打造一个离线语音助手(含完整代码)

本文详细介绍了如何利用ESP32-S3芯片和esp-sr SDK从零构建一个离线语音助手,涵盖硬件选型、声学设计、SDK配置及低功耗优化等关键步骤。通过实战案例和完整代码,帮助开发者实现自定义唤醒词和命令词,打造低成本、高隐私的本地语音控制解决方案。

weixin_29041195的博客 372

C++基类成员函数访问派生类对象的基类成员问题

C++基类成员函数访问派生类对象的基类成员问题,很奇怪的现象,在网上也没有找到相应的说明。 主要是问题太难描述了。 Talk is cheap, show you the code: class Derived; class Base { public: void func(Derived d); private: int baseNum; }; class Deriv

Sad_Sugar的专栏 3624

手把手教你用STM32F303和LAN9252搭建EtherCAT从站(附IO/AD/DA完整代码)

本文详细介绍了如何使用STM32F303和LAN9252搭建EtherCAT从站,涵盖硬件选型、开发环境配置、协议栈移植及IO/AD/DA功能实现。通过实战指南和完整代码,帮助开发者快速掌握工业自动化中的实时通信技术,提升系统性能与可靠性。

weixin_26802933的博客 235

【C++】—— 继承

继承的基本介绍

m0_56069910的博客 1069

工业机器人关节拆装流程_一文读懂模块化直驱电机及机器人关节模组

私信“干货”二字,即可领取138G伺服与机器人专属及电控资料!如果说芯片是智能行业最为重要的核心元件,那么电机几乎可以说是支撑了整个自动化和大工业生产以及现代社会最为重要的部件,全世界90%的能源是由电机发出来的,而70%是由电机消耗调的,电机可以说是整个人类社会能源循环的占有绝对地位的产品。普通伺服电机伺服电机其实已经算是电动机中比较高端的类型,特别是永磁同步类型的伺服电机,由于其启动快速,惯量...

weixin_32159771的博客 2155

如何用 OBProxy 实现 OceanBase 的最佳路由策略

本文基于业务中一类常见的路由问题展开,对OceanBase的路由功能及对应配置项做详细介绍,指导用户在业务实践中如何正确的配置路由策略及快速排查路由问题

OceanBase分布式数据库的博客 1695

45 C++ - 继承中同名成员的处理方法

1.当子类成员和父类成员同名时,子类依然从父类继承同名成员 2.如果子类有成员和父类同名,子类访问其成员默认访问子类的成员(本作用域,就近原则) 3.在子类通过作用域::进行同名成员区分(在派生类中使用基类的同名成员,显示使用类名限定符) class Base{ public: Base():mParam(0){} void Print(){ cout << mParam <...

阿甘兄 660

Eureka自我保护机制

Eureka自我保护机制 默认情况下,当eureka server在一定时间内没有收到实例的心跳,便会把该实例从注册表中删除(默认是90秒),但是,如果短时间内丢失大量的实例心跳,便会触发eureka server的自我保护机制,比如在开发测试时,需要频繁地重启微服务实例,但是我们很少会把eureka server一起重启(因为在开发过程中不会修改eureka注册中心),当一分钟内收到的心跳数大量减少时,会触发该保护机制。可以在eureka管理界面看到Renews threshold和Renews(last

Soul_Ming的博客 543

C++-类-继承和派生4:继承中同名成员的处理方法

通过改变函数返回类型的方式重新定义了基类的func1函数,则从基类继承来的没有重新定义的重载版本的函数将被隐藏。通过改变函数参数列表的方式重新定义了基类的func1函数,则从基类中继承来的其他重载版本被隐藏,不可访问。重定义了Base类的myfunc函数,derive1可访问func1及其重载版本的函数。任何时候重新定义基类中的一个重载函数,在新类中所有的其他版本将被自动隐藏.派生类和基类成员属性重名,子类访问成员默认是子类成员。重载func1之后,基类的函数被隐藏。没有重新定义的重载版本被隐藏。

u013250861的博客 975

【保姆级教程】教你如何轻松获取MIMIC数据使用权限

文章非常详细地介绍了MIMIC数据库申请使用的全部步骤。

越努力 越幸运 6600

SimSwap复现指引及代码分析【2023有更新】

我的环境!!!😚😚😚 之后会遇到:还会遇到至此环境配置完毕!下面是所需要的checkpoint。至此环境准备结束。先试试环境是否有问题,图片是代码包中给的。我用的是512的checkpoint,无水印,a是源脸,b是目标脸。输出到./output/result_whole_swapsingle.jpg 如图是可以成功换脸的:(为了方便查看将图像裁剪到了128x128) 表示图像预处理,相应的改为也是一样。不加就是对已经面部对齐的图像进行简单的面部交换。 加上就是无水印。 交换一张图片中的所有面孔。

zik的博客 2048

c++继承之重名成员

一、概念:1、派生类定义了与基类同名的成员,在派生类中访问同名成员时屏蔽(hide)了基类的同名成员2、在派生类中使用基类的同名成员,显式地使用类名限定符:类名 :: 成员二、举例class base { public :           int a ,  b ;   } ;class derived : public  base { public :          int  b ,  c...

sdau20171755的博客 321

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

访问从基类继承的成员

示例代码: #include using namespace std; class Base1 { public: int var; void fun() { cout << "member in Base1" << endl; } }; class Base2 { public: int var; void fun() { cout << "member i

ll_0802的专栏 400

Statistics and Machine Learning Toolbox

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

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

c++继承与派生(一)

继承方式默认私有。

lhr056813的博客 929

继承与派生:作用域分辨符(转)

原文地址:http://www.jizhuomi.com/software/104.html 鸡啄米在编程入门系列的前两节中讲了派生类的构造函数和析构函数,现在来讲讲通过作用域分辨符访问派生类成员的问题。 访问派生类的成员有可见性和唯一性两个问题,我们只能访问到具有唯一性的可见成员。 先说说可见性的问题。前面C++编程入门系列之十八的作用域和可见性中 ...

weixin_30352645的博客 187

C++三大特性—继承“名字搜索与默认成员函数”

继承中的类的作用域、编译时的名字搜索、名字冲突与继承、名字查找优先类型检查派生类的默认成员函数、派生类的声明、继承与友元、继承与静态成员

DEXTERFUTIAN的博客 1820

基类和派生类中的重名函数

基类和派生类中使用同一名字的成员函数fun(),在派生类的作用域内,如果想要在派生类中显式调用基类的fun函数。,就需要用到之前提到过的。

2201_75759755的博客 751

派生类和基类中的成员变量名相同(转)

源地址 当派生类中的成员变量和基类中同名,那么与函数同名一样,基类中的同名变量会被隐藏。也就是通过派生类对象无法访问基类的同名变量。例一:class base { public: int a; int b; base() { a=10; b=20; } virtual void fun() {

wolfrevoda的专栏 4728

继承中的同名成员变量和函数

同名成员函数 #include using namespace std; class A { public: int a; int b; public: void get() { cout<<"b "<<b<<endl; } void print() { cout<<"AAAAA "<<endl; } protected: private: }; class

x_y_q_的博客 543

C++继承-同名成员处理

c++

wade1010的专栏 326

C++继承时的名字遮蔽问题

C++继承时的名字遮蔽问题

Elanie1024的博客 501
上一篇: C++的继承中构造和析构函数的调用顺序
下一篇: 继承中的static关键字
LiBin1103
博客等级 码龄9年 38粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值