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

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

#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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

回顾Django的第二天

1.http 1.1http请求协议与响应协议 1.1.1简介 http协议包含由浏览器发送数据到服务器需要遵循的请求协议与服务器发送数据到浏览器需要遵循的请求协议。用于HTTP协议交互的信被为HTTP报文。请求端(客户端)的HTTP报文 做请求报文,响应端(服务器端)的 做响应报文。HTTP报文本身…

中国版的 GPTs:InsCode AI 生成应用

前言 在上一篇文章 《InsCode&#xff1a;这可能是下一代应用开发平台&#xff1f;》中&#xff0c;我们介绍了一个新的应用开发平台 InsCode&#xff0c;它是基于云原生开发环境 云 IDE AI 辅助编程的一站式在线开发平台。 最近&#xff0c;InsCode 又推出了另一种全新的开…

一、Linux系统概述和安装

目录 1、Linux系统概述 2、Linux发行版介绍 3、虚拟机软件介绍 4、VMware安装 5、Linux系统&#xff08;CentOS&#xff09;系统安装 6、登录并查看IP地址 7、Linux连接工具CRT使用 7.1 概述 7.2 CRT安装 7.3 使用步骤 7.4 文件上传 8、Linux的快照 8.1 作用 8.2…

新手村之SQL——分组与子查询

1.GROUP BY GROUP BY 函数就是 SQL 中用来实现分组的函数&#xff0c;其用于结合聚合函数&#xff0c;能根据给定数据列的每个成员对查询结果进行分组统计&#xff0c;最终得到一个分组汇总表。 mysql> SELECT country, COUNT(country) AS teacher_count-> FROM teacher…

数据爬取+可视化实战_告白气球_词云展示----酷狗音乐

一、前言 歌词上做文本分析&#xff0c;数据存储在网页上&#xff0c;需要爬取数据下来&#xff0c;词云展示在工作中也变得日益重要&#xff0c;接下来将数据爬虫与可视化结合起来&#xff0c;做个词云展示案例。 二、代码 # -*- coding:utf-8 -*- # 酷狗音乐 通过获取每首歌…

学习笔记三十五:Ingress-controller高可用

Ingress-controller高可用 Ingress-controller高可用特别注意&#xff1a; 通过keepalivednginx实现ingress-nginx-controller高可用安装nginx主备&#xff1a;修改nginx配置文件。主备一样keepalive配置主keepalived备keepalivek8snode1和k8snode2启动服务测试vip是否绑定成功…

python实现two way ANOVA

文章目录 目的&#xff1a;用python实现two way ANOVA 双因素方差分析1. python代码实现1 加载python库2 加载数据3 统计样本重复次数&#xff0c;均值和方差&#xff0c;绘制箱线图4 查看people和group是否存在交互效应5 模型拟合与Two Way ANOVA&#xff1a;双因素方差分析6 …

Docker 下载加速

文章目录 方式1&#xff1a;使用 网易数帆容器镜像仓库进行下载。方式2&#xff1a;配置阿里云加速。方式3&#xff1a;方式4&#xff1a;结尾注意 Docker下载加速的原理是&#xff0c;在拉取镜像时使用一个国内的镜像站点&#xff0c;该站点已经缓存了各个版本的官方 Docker 镜…

Redis的高可用模式

1. 什么是高可用&#xff1f; 高可用&#xff08;High Availability, HA&#xff09;是指在信息技术中确保系统、服务或应用程序在绝大多数时间内都是可操作和可访问的能力。这通常涉及以下几个关键方面&#xff1a; 最小化停机时间: 高可用系统的目标是减少因硬件故障、系统升…

Linux基本指令(中篇)

目录 8.cp指令&#xff08;重要&#xff09; 9.mv指令&#xff08;重要&#xff09;&#xff1a; 10.cat指令&#xff08;适合查看小文件内容&#xff09; 11.more指令&#xff08;适合查看大文件内容&#xff09; 12.less指令&#xff08;重要&#xff09; 13.head指令和…

IntelliJ IDEA安装使用教程

IntelliJ IDEA是一个流行的Java 集成开发环境&#xff08;IDE&#xff09;&#xff0c;由JetBrains公司开发。它是一款全功能的IDE&#xff0c;支持多种编程语言&#xff0c;如Java、Kotlin、Groovy、Scala、Python、JavaScript、HTML、CSS等等。IntelliJ IDEA 提供了高效的代码…

ios 逆向分分析,某业帮逆向算法(一)

用到工具: 爱思助手CrackerXL(砸壳软件)越狱手机ida反汇编软件分析login 的sign 签名算法中自己写算法 已知我们32位,我们不妨猜测是md5 ,那我们试图使用CC_MD5 ,这个是ios 中的标准库, 我们使用frida-trace 注入hook一下,看看有没有 经过 是经过了这个函数,密码也是…