子类出现和父类同名的成员,子类如何访问父类的同名成员?

一. 子类访问子类同名的成员,直接访问即可。

#include <iostream>
using namespace std;

class Base {
public:
    Base(int age = 0) : m_age(age) {}
    int get_age() {return m_age;}
    static int get_counter() {return ms_counter;}
    int m_age;
    static int ms_counter; // 静态成员,类内声明,内外初始化
};
int Base::ms_counter = 55; // 内外初始化

class Derived : public Base {
public:
    Derived(int age = 0, int base_age = 0) : Base(base_age), m_age(age) {}
    int get_age() {return m_age;}
    static int get_counter() {return ms_counter;}
    int m_age;
    static int ms_counter;
};
int Derived::ms_counter = 50; // 内外初始化

int main(int argc, char *argv[]) {
    // 通过对象访问非静态和静态成员
    Derived child(10, 40);
    cout << "child age = " << child.m_age << endl;
    cout << "child age = " << child.get_age() << endl;
    cout << endl;

    cout << "child counter = " << child.ms_counter << endl;
    cout << "child counter = " << child.get_counter() << endl;
    // 通过类名访问静态成员
    cout << "Derived::counter = " << Derived::ms_counter << endl;
    cout << "Derived::counter = " << Derived::get_counter() << endl;
    return 0;
}

二. 子类访问父类同名的成员,需加父类作用域。

因为:

1.子类中出现和父类同名的成员变量,子类会屏蔽掉父类的同名成员变量。

2.子类中出现和父类同名的成员函数,子类会屏蔽掉父类中跟子类同名的所有函数(包括重载的所有版本)。

#include <iostream>
using namespace std;

class Base {
public:
    Base(int age = 0) : m_age(age) {}
    int get_age() {return m_age;}
    static int get_counter() {return ms_counter;}
    int m_age;
    static int ms_counter; // 静态成员,类内声明,内外初始化
};
int Base::ms_counter = 55; // 内外初始化

class Derived : public Base {
public:
    Derived(int age = 0, int base_age = 0) : Base(base_age), m_age(age) {}
    int get_age() {return m_age;}
    static int get_counter() {return ms_counter;}
    int m_age;
    static int ms_counter;
};
int Derived::ms_counter = 50; // 内外初始化

int main(int argc, char *argv[]) {
    // 通过对象访问非静态和静态成员
    Derived child(10, 40);
    cout << "base age = " << child.Base::m_age << endl;
    cout << "base age = " << child.Base::get_age() << endl;
    cout << endl;

    cout << "base counter = " << child.Base::ms_counter << endl;
    cout << "base counter = " << child.Base::get_counter() << endl;
    // 通过类名访问静态成员
    cout << "Base::counter = " << Derived::Base::ms_counter << endl;
    cout << "Base::counter = " << Derived::Base::get_counter() << endl;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/204752.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言——指针(三)

&#x1f4dd;前言&#xff1a; 上篇文章C语言——指针&#xff08;二&#xff09;中对&#xff1a;指针的运算和指针变量类型对指针使用的影响开展了进一步的探讨&#xff0c;这篇文章我们继续学习一下指针与一维数组之间的关系&#xff1a; 1&#xff0c;对数组名的理解 2&am…

electron调用dll问题总汇

通过一天的调试安装&#xff0c;electron调用dll成功&#xff0c;先列出当前的环境&#xff1a;node版本: 18.12.0&#xff0c;32位的&#xff08;因为dll为32位的&#xff09; VS2019 python node-gyp 1、首先要查看报错原因&#xff0c;通常在某一行会有提示&#xff0c;常…

CCF CSP认证 历年题目自练Day50

题目 试题编号&#xff1a; 201809-3 试题名称&#xff1a; 元素选择器 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 256.0MB 问题描述&#xff1a; 题目分析&#xff08;个人理解&#xff09; 还是先理解题意&#xff0c;关于html的部分&#xff0c;可以按照样例画出…

如何使用MES管理系统管理与统计员工绩效

MES管理系统解决方案在生产流程优化中发挥着至关重要的作用&#xff0c;特别是在员工绩效的统计与管理方面。本文深入探讨了MES管理系统如何通过多种方式&#xff0c;包括实时数据采集、生产过程可视化、以及绩效指标设定与评估&#xff0c;以更精准、全面的方式统计员工绩效&a…

C盘爆红 教你如何快速释放空间

目录 问题描述&#xff1a; C盘爆红 快速清理空间&#xff1a; 1.找到设置 2.选择系统 3.打开存储 4.进入清理建议 5.选择以前的Windows安装文件 6.点击清理 7.至此清理完成 问题描述&#xff1a; C盘爆红 快速清理空间&#xff1a; 1.找到设置 2.选择系统 3.打开存储 4.进入清…

JRT和检验共用的打印层实现

之前对接的打印和导出是C#实现的&#xff0c;如果要完全Java化就需要用Java把打印元素绘制协议用Java实现&#xff0c;这次介绍实现主体搭建&#xff0c;最终使JRT达到完全信创和跨平台目标。到这篇后&#xff0c;所有的Java难题都解决完毕&#xff0c;几天到几周之内就可以把打…

C++-多态常见试题的总结

关于C多态的介绍&#xff1a;C-多态-CSDN博客 1. A.只有类的成员方法才可以被virtual修饰&#xff0c;其他的函数并不可以 B.正确 C.virtual关键字只在声明时加上&#xff0c;在类外实现时不能加 D.static和virtual是不能同时使用的 2. A.多态分为编译时多态和运行时多态&…

算法通关村第十三关-白银挑战数字与数学高频问题

大家好我是苏麟 , 今天带来数字与数学的高频问题 . 加一 描述 : 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个…

ElementPlusError: [ElPagination] 你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档

使用element table出现这个错误好几回了&#xff0c;今天把它记录一下&#xff0c;并把错误原因复盘一遍。具体如下&#xff1a; 错误截图 原因 其实这个错误挺迷的&#xff0c;我把各种情况都测试了一遍&#xff0c;最后发现是因为给 翻页参数 total 传值错误导致的。 总结…

.net-去重的几种情况

文章目录 前言1. int 类型的list 去重2. string类型的 list 去重3. T泛型 List去重4. 使用HashSet List去重5. 创建静态扩展方法 总结 前言 .net 去重的几种情况 1. int 类型的list 去重 // List<int> List<int> myList new List<int>(){ 100 , 200 ,100…

基于SSM的影视创作论坛设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

element ui 表格合计项合并

如图所示&#xff1a; 代码&#xff1a; <el-table height"400px" :data"tableData " borderstyle"width: 100%"stripe show-summaryref"table"id"table"> </el-table>监听表格 watch: { //监听table这个对象…

虚拟数字人有什么用?有哪些应用场景?

​​过去三年&#xff0c;元宇宙概念进入到大众视野&#xff0c;虚拟数字人备受关注。抖音达人柳夜熙、洛天依、网红虚拟偶像AYAYI等&#xff0c;随着元宇宙的流行&#xff0c;数字人也逐渐成为一种趋势。据行业预测&#xff0c;到2030年&#xff0c;中国的数字人总市场规模将达…

Android自动化测试中使用ADB进行网络状态管理!

技术分享&#xff1a;使用ADB进行Android网络状态管理 Android自动化测试中的网络状态切换是提高测试覆盖率、捕获潜在问题的关键步骤之一&#xff0c;本文将介绍 如何使用ADB检测和管理Android设备的网络状态。 自动化测试中的网络状态切换变得尤为重要。 网络状态查询 adb s…

websocket 消息包粗解

最近在搞websocket解析&#xff0c;记录一下: 原始字符串 &#xfffd;~&#xfffd;{"t":"d","d":{"b":{"p":"comds/comdssqmosm7k","d":{"comdss":{"cmdn":"success",…

postman打开白屏

现状&#xff1a;postman打开白屏如下图 window环境变量&#xff1a; Win R 快捷键打开 sysdm.cpl 增加环境变量&#xff1a; 变量名&#xff1a;POSTMAN_DISABLE_GPU 值&#xff1a;true 重新打开postman

【Python笔记】PyAutoGUI模块知识点整理

PyAutoGUI简介 pyautogul这个模块是用来模拟用户操作的模块&#xff0c;他可以模拟你的鼠标键盘等操作。可以说他是对我们个人而言最实用的库了。&#xff08;玩游戏再也不用重复无聊的操作&#xff0c;被迫做打工仔了&#xff09; 模块安装指令 python -m pip install -U py…

统信UOS_麒麟KYLINOS配置日志轮转

原文链接&#xff1a;统信UOS/麒麟KYLINOS配置日志轮转 hello&#xff0c;大家好啊&#xff0c;今天给大家带来一篇在统信UOS/麒麟KYLINOS上配置日志轮转的文章。本文举例的内容如下&#xff1a;首先我们创建一个定时任务&#xff0c;在每天00:00给/var/log/hello路径下的hello…

Yolov8实现瓶盖正反面检测

一、模型介绍 模型基于 yolov8n数据集采用SKU-110k&#xff0c;这数据集太大了十几个 G&#xff0c;所以只训练了 10 轮左右就拿来微调了 基于原木数据微调&#xff1a;训练 200 轮的效果 10 轮SKU-110k 20 轮原木 200 轮瓶盖正反面 微调模型下载地址https://wwxd.lanzouu.co…

新建的springboot项目中application.xml没有绿色小叶子(不可用)

经常有朋友会遇到新建了一个springboot项目&#xff0c;发现为啥我创建的application.xml配置文件不是绿色的&#xff1f;&#xff1f;&#xff1f; 下面教大家如何解决&#xff0c;这也是博主在做测试的时候遇到的&#xff1a; 将当前位置application.xml删掉&#xff0c;重新…