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++】—— 继承

继承的基本介绍

m0_56069910的博客 1069

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

压电陶瓷传感器避坑指南:实测阻抗匹配对信号输出的影响(附示波器调试技巧)

本文深入探讨压电陶瓷传感器在工业振动监测中的阻抗匹配问题,通过等效电路模型和实测数据揭示负载阻抗对信号输出的关键影响。文章提供从元件选型到示波器调试的完整解决方案,特别强调100kΩ以上负载阻抗的重要性,并分享JFET缓冲器设计和PCB布局的实用技巧,帮助工程师避免信号失真和输出不稳定问题。

ooo22的博客 516

华为昇腾 910B 实战:DeepSeek-R1 蒸馏模型高效部署与性能调优全解析

本文详细解析了在华为昇腾910B硬件平台上高效部署DeepSeek-R1蒸馏系列模型(14B/32B版本)的完整实战流程。内容涵盖从MindIE环境搭建、镜像获取、模型准备,到服务配置、内存参数调优、性能测试及常见问题排查,为开发者提供了基于昇腾910B进行大模型部署与优化的全链路指南。

weixin_28235513的博客 211

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

小鹏P7车载以太网诊断实战:从OBD口定义到DoIP协议验证

本文详细解析了小鹏P7车载以太网诊断的实战过程。从OBD接口的针脚定义入手,依据ISO13400标准,确认了以太网线对位置,并指导制作专用的RJ45转OBD线束。通过搭建测试环境,使用Ping、端口扫描及Wireshark抓包,最终成功验证了车辆对DoIP协议的支持,为基于以太网的高速诊断与刷写提供了完整的技术路径。

CAT789的专栏 526

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

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

WINGREZ‘S BLOG 2427

Unity游戏开发客户端C#基础

初级Unity客户端开发工程师 面经 之 C#篇

Sea3752的博客 2万+

如何对正射影像DOM(卫星影像、无人机航拍影像)进行拼接、合并以及去黑边(附 Global Mapper Pro 24.0 安装包(中文注册版))

为什么要对正射影像DOM进行拼接?影像去黑边、影像拼接的操作和步骤。

从地图看世界的专栏 4300

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

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

阿甘兄 660

泰凌微8258入门教程 环境篇④——开发板+烧录器 8258mesh新手套件购买

工欲善其事,必先利其器。 淘宝链接:https://item.taobao.com/item.htm?

4130

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

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

u013250861的博客 975

【四足机器人项目实战】波士顿spot四足机器人机工程设计及实现分析

主要介绍了波士顿spot机器人的发展历史、四足机器人的硬件系统及电机执行器组成包括硬件系统、关节电机执行器,机载传感器机处理器及电气连接等。概述了四足机器人规划控制、感知、定位及局部地图的相关算法方向。

qq_35635374的博客 5000

一文吃透:从零到一开发一套 ABAP RAP 应用的完整路径

ABAP RAP开发实战摘要 本文系统介绍了ABAP RESTful Application Programming Model (RAP)在企业级应用开发中的实施路径。文章以出差申请业务场景为例,详细拆解了RAP开发的六步主线流程: 数据库表设计:规范主键、审计字段设计 CDS数据建模:通过视图定义业务对象实体及关联 行为定义与实现:使用BDEF声明事务规则,Behavior Pool类实现业务逻辑 业务对象投影:裁剪服务接口视图 服务定义与绑定:按OData协议暴露服务 UI集成测试:支持Fiori E

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

c++继承之重名成员

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

sdau20171755的博客 321

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

访问从基类继承的成员

示例代码: #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

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

c++继承与派生(一)

继承方式默认私有。

lhr056813的博客 929

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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

原文地址: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、付费专栏及课程。

余额充值