当前位置: 首页 > news >正文

C++核心编程_继承同名静态成员处理方式

问题:继承中同名的静态成员在子类对象上如何进行访问?

静态成员和非静态成员出现同名,处理方式一致

  • 访问子类同名成员 直接访问即可

  • 访问父类同名成员 需要加作用域

class Base {
public:static void func() {cout << "Base - static void func()" << endl;}static void func(int a) {cout << "Base - static void func(int a) "<< a << endl;}static int m_A;
};int Base::m_A = 100;class Son : public Base
{
public:static void func() {cout << "Son - static void func() " << endl;}static int m_A;
};int Son::m_A = 200;//同名成员属性
void test01() {//通过对象访问cout << "同名成员属性,通过对象访问" << endl;Son s;cout << "Son 下 m_A = " << s.m_A << endl;cout << "Base 下 m_A = " << s.Base::m_A << endl;//通过类名访问cout << "同名成员属性,通过类名访问" << endl;cout << "Son 下 m_A = " << Son::m_A << endl;cout << "Base 下 m_A = " << Son::Base::m_A << endl;}// 同名成员函数
void test02() {// 通过对象访问cout << "通过对象访问" << endl;Son s;s.func();s.Base::func();//出现同名,子类会隐藏掉父类中所有同名成员函数,需要加作作用域访问s.Base::func(100);// 通过类名访问cout << "通过类名访问" << endl;Son::func();Son::Base::func();Son::Base::func(100);}int main() {//test01();test02();system("pause");return 0;}

总结:同名静态成员处理方式和非静态处理方式一样,只不过有两种访问的方式(通过对象 和 通过类名)

http://www.xdnf.cn/news/940627.html

相关文章:

  • Java常见异常处理指南:IndexOutOfBoundsException与ClassCastException深度解析
  • C++_核心编程_继承中构造和析构顺序
  • LLMs 系列科普文(6)
  • 第二十七章 位置参数
  • 算数运算符
  • 【阿里巴巴 x 浙江大学】信息与交互设计 - 交互设计概述
  • HNSW - 分层可导航小世界
  • Secs/Gem第十二讲(基于secs4net项目的ChatGpt介绍)
  • ServerTrust 并非唯一
  • Linux操作系统Shell脚本企业级综合练习
  • 2.1.3_2 编码和调制(下)
  • 面壁智能推出 MiniCPM 4.0 端侧大模型,引领端侧智能新变革
  • Python Day45 学习(日志Day13-14复习)
  • JLINK脚本初始化外部SDRAM STM32H7
  • 基于51单片机的红外防盗及万年历仿真
  • 2025-04-23-基于上下位机结构的系统实例分析
  • 基于n8n指定网页自动抓取解析入库工作流实战
  • 开源一个心流舱付费空间番茄风水钟
  • 车载诊断架构 --- 整车诊断数据管理策略
  • LR修图软件|Lightroom 2025网盘下载与安装教程指南
  • C++_核心编程_菱形继承
  • gem5-gpu教程 在gem5-gpu上运行多个应用程序
  • java复习 05
  • 聊聊集群间数据复制和持久化机制
  • Auto Think,快手开源的自动思考大模型
  • 从一次日期格式踩坑经历,谈谈接口设计中的“约定大于配置“
  • python打卡day48@浙大疏锦行
  • The Quantization Model of Neural Scaling
  • 【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
  • 一张图 介绍什么是字节流