当前位置: 首页 > 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.dtcms.com/a/239291.html

相关文章:

  • 深入理解链接与加载:从静态库到动态库的全流程解析
  • 【第八篇】 SpringBoot高级配置(配置篇)
  • 【SpringBoot自动化部署方法】
  • 图像超分辨率
  • 深度学习模块缝合
  • 线程与线程池
  • Pandas-如何正确将两张数据表进行合并
  • 碳排放智能分析与优化系统:工业减排的革命性突破
  • 高保真组件库:下拉框
  • 面试实例题
  • 【P2P】低延迟直播(尤其是 P2P 实时分发)常用的 x264 编码参数示例
  • 小游戏不能玩了?最好用flash扩展程序
  • 计算机网络笔记(三十)——5.2用户数据报协议UDP
  • 什么是贫血模式
  • FastAPI实战起步:从Python环境到你的第一个“Hello World”API接口
  • 哈希map中不能将数组作为键的原因 leetcode49
  • JavaScript 内置对象全解析
  • TM中,return new TransactionManagerImpl(raf, fc);为什么返回是new了一个新的实例
  • 《从函数模板到类模板:OP泛型编程进化论》
  • Python项目的构建和部署方案推荐
  • QTreeWidget 应用场景与用法详解
  • Docker部署SpringBoot项目
  • 6月8日python-AI代码
  • 面向对象之 继承中的成员访问特点
  • TCP相关问题 第一篇
  • 鸿蒙的一些布局
  • 深入剖析JVM垃圾回收,高并发场景JVM性能调优,内存泄露分析,以及如何避免OOM
  • 8个AI软件介绍及其工作原理讲解
  • Day 21
  • Hilt在android项目中使用的注解说明