#include <iostream>
#include <string>
using namespace std;
/************************************************************************/
/*
继承同名静态数据成员和静态成员函数访问
/************************************************************************/
class Base{
public:
static void fun()
{
cout<<m_A<<endl;
}
static void fun(int a)
{
m_A = a;
cout<<m_A<<endl;
}
static int m_A;
};
int Base::m_A = 10;
class Base1{
public:
static void fun()
{
cout<<m_A<<endl;
}
static void fun(int a)
{
m_A = a;
cout<<m_A<<endl;
}
static int m_A;
};
int Base1::m_A = 20;
class Son:public Base, public Base1
{
public:
static void fun()
{
cout<<m_A<<endl;
}
static int m_A;
};
int Son::m_A = 20;
void test1()
{
Son sn;
//1.对象形式访问静态数据成员
cout<<sn.m_A<<endl; //和普通同名数据成员访问方式一样
cout<<sn.Base::m_A<<endl; //父类同名数据成员访问,加上父类作用域
//2.静态成员所有对象共享,可以通过类名访问
cout<<Son::m_A<<endl;
cout<<Son::Base::m_A<<endl;
}
void test2()
{
Son sn;
//1.对象形式访问静态成员函数
sn.fun(); //子类函数调用,普通同名成员函数访问方式一样
sn.Base::fun(); //父类函数调用,加上父类作用域
sn.Base::fun(30); //父类函数调用,加上父类作用域
//2.静态成员所有对象共享,可以通过类名访问
Son::fun();
//子类和父类出现同名静态成员函数(非静态成员函数也一样),会隐藏父类所有同名静态同名函数
//若想访问父类静态成员函数,需要加上父类作用域
Son::Base::fun();
Son::Base::fun(40);
}
//多继承中出现多个同名数据成员,子类使用时需要加上各自作用域
void test3()
{
Son sn;
//1.对象形式访问静态成员函数
sn.fun(); //子类函数调用,普通同名成员函数访问方式一样
sn.Base::fun(); //父类函数调用,加上父类作用域
sn.Base::fun(30); //父类函数调用,加上父类作用域
sn.Base1::fun();
sn.Base1::fun(40);
//2.静态成员所有对象共享,可以通过类名访问
Son::fun();
Son::Base::fun();
Son::Base::fun(50);
Son::Base1::fun();
Son::Base1::fun(60);
}
int main()
{
test3();
return 0;
}
相关推荐
Python读取ECMWF grib数据;Anaconda配置eccodes和cfgrib环境及安装过程
python读取grib数据,eccodes,cfgrib安装。
c++中 static 变量和函数能否被子类继承
1. 父类的static变量和函数在派生类中依然可用,但是受访问性控制(比如,父类的private域中的就不可访问),而且对static变量来说,派生类和父类中的static变量是共用空间的,这点在利用static变量进行引用计数的时候要特别注意。 2. static函数没有“虚函数”一说。因为static函数实际上是“加上了访问控制的全局函数”,全局函数哪来的什么虚函数?
精通DC-DC变换器:Boost升压电路全解析
Boost升压变换器是一种将低直流电压转换为高直流电压的常用电路。其核心工作原理是通过电感储能:开关导通时电感充电,关断时电感与电源串联向负载供电。关键公式表明输出电压Vo=Vi/(1-D),占空比D越大,升压比越高。变换器工作时会产生电感电流纹波和输出电压纹波,需合理选择电感和电容参数。开关管和二极管需承受完整的输出电压,对元器件选型要求较高。理解这些原理是设计高效升压电源的基础。
c 中子类能否访问父类成员_C/C++ 子类调用父类中的私有成员变量(对比JAVA)
C++Person中age为私有的,通过Persron::getAge()可以获取age的值。#include using namespace std;class Person{public:Person(int a) {this->age = a;}int getAge() {return age;}private:int age;};class Man : public Person{p...
从零构建RK3568视频处理管线:C++ V4L2捕获与RKMPP硬编解码实战
本文详细介绍了在RK3568平台上,使用C++语言从零构建高性能视频处理管线的实战过程。核心内容包括通过V4L2接口高效捕获摄像头视频流,并利用RKMPP硬件编码器实现零拷贝的H.264/H.265硬编码。文章深入讲解了设备初始化、DMA缓冲区管理、编码器参数配置以及主循环协同工作等关键步骤,旨在帮助开发者构建低延迟、高效率的嵌入式视频应用。
cadence CIS 库建立--建立自己维护的CIS数据库
遇到一个问题,在使用cadecnce的时候,就是没有自己的本地/分享的数据库。 在画原理图或者PCB的时候,如果能搭建一个自己的数据库,在局域网或者本地 就好了。出于这样的想法,做了一些探索,找到了一种可能的答案。 由于数据库编制知识的缺乏,要自己建一个数据库似乎花费的时间会比较多。 偶发奇想,如果能够改编CIS 自带的数据库 另建立副本进行维护 就能够省下不少麻烦。 先说下CIS 是个啥。网上一搜:总之CIS 是个好东西。 功能强大。 点击CIS capture 中的 Options CIS Config
02_static修饰的成员可以直接被什么访问?
被static修饰的成员可以并且建议通过类名直接访问。 访问静态成员的格式: 类名.静态成员变量名 类名.静态成员方法名(参数) 对象名.静态成员变量名 ------不建议使用该方式,会出现警告 对象名.静态成员方法名(参数) ------不建议使用该方式,会出现警告 代码演示: class Demo { //静态成员变量 public static int num = 100...
保姆级教程:用Altium Designer 24从零画一块PCB(附完整库文件与避坑清单)
本文提供了一份详细的Altium Designer 24(AD24)PCB设计教程,从工程创建到最终文件输出,涵盖元件库管理、原理图设计、PCB布局布线等全流程。特别适合初学者,包含STM32最小系统板的实战案例,附完整库文件和避坑清单,帮助用户快速掌握AD24的核心功能与技巧。
非static成员函数可访问static态成员函数/成员;static成员函数不能访问非static成员函数/成员,只能访问static成员函数/变量
1、static成员函数不能访问非static成员函数/成员,只能static成员间相互访问: //.h class A { public: static func1() // 编译出错 { menber1 = 1; } static func3() { cout<<"abc"<<endl; } static func2() ...
Ubuntu 24.04 高效部署Slurm集群:从零到生产环境实战
本文提供了一份在Ubuntu 24.04 LTS系统上从零开始部署生产级Slurm高性能计算集群的完整实战指南。内容涵盖网络配置、Munge安全认证、Slurm核心组件安装与配置,并深入讲解了cgroups资源隔离、NFS共享存储、配置无感知模式等生产环境优化技巧,最后通过实例演示如何提交与管理Slurm作业,帮助用户构建高效、稳定的计算平台。
SIwave仿真手册——信号完整性仿真之S参数的提取(二)
上一篇简单了讲述了软件的各个操作界面,本次博客更新关于的仿真,因为第二章完整的内容比较多,所以分成好几篇博客进行分享。
【C++】继承 ⑩ ( 继承机制中的 static 静态成员 | 子类中访问父类静态成员的方法 )
一、继承机制中派生类中的 static 关键字 1、子类继承父类静态成员 2、父类静态成员访问控制权限的改变 3、子类如何访问父类静态成员 4、静态成员使用要点 二、完整代码示例
Spring-AI 第 17 章 - 飞书机器人接入详解
✅ Stream 长连接(官方 SDK)✅ AI 对话(支持工具调用)✅ 消息接收与回复✅ 天气查询✅ 数据库查询✅ 数学计算✅ 事件去重Stream 长连接模式:使用官方 SDK 建立 WebSocket 长连接,服务器主动连接飞书,无需公网 IP消息处理流程:接收消息 → 解析内容 → AI 处理 → 回复用户AI 工具调用:接入 FunctionTools,支持天气、计算、日期、数据库查询等多种工具。
静态成员也“撞名”?别怕!C++ 继承中同名静态成员这样处理!
📝【C++继承中同名静态成员处理指南】 当子类和父类存在同名静态成员(变量/函数)时,访问规则与普通成员一致: 1️⃣ 通过对象访问:直接s.m_A访问子类成员,s.Base::m_A访问父类成员 2️⃣ 通过类名访问:Son::m_A调用子类,Son::Base::m_A调用父类
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
C++核心编程_继承同名静态成员处理方式
问题:继承中同名的静态成员在子类对象上如何进行访问?静态成员和非静态成员出现同名,处理方式一致。访问子类同名成员 直接访问即可。访问父类同名成员 需要加作用域。
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
C++继承中同名静态成员属性和成员函数的调用方法(附代码)
C++继承中同名静态成员属性和成员函数的调用方法
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
C++class
我写博客第一天 我将写的是关于C++代码总结 #include<iostream> using namespace std; /* 总结: 同名静态成员访问和非静态同名成员访问一样,只是有两种访问方式(对象访问和类名访问) */ //继承中的同名静态成员处理方式 class Base { public: static int m_A; static void func() {...
派生类-访问同名的成员如何做?
如果在C++中一个派生类继承了两个或多个基类,而这些基类中包含了同名的成员,那么在派生类中直接访问这个成员会导致编译器无法确定到底应该访问哪一个基类的成员,从而产生编译错误。在C++类的继承中,如果基类和派生类有同名的成员,派生类会隐藏基类中所有相同名称的成员。这意味着,如果在派生类中直接访问该名称的成员,将会默认访问派生类自己的成员,而不是基类中的同名成员。这样,我们就避免了编译器的歧义错误,并且可以明确地访问到我们想要访问的基类成员。如果需要在派生类中访问被隐藏的基类成员,可以使用作用域解析运算符。
【C/C++】继承中同名成员处理方式
如果子类中出现和父类同名的成员函数,子类的同名成员会隐藏父类中所有版本的同名成员函数。
类的继承与派生
private(不能被继承)--------------------------------------------------即父类中所有非静态成员属性都被子类继承下去,但父类中私有成员属性被编译器隐藏起来了,因此访问不到,但确实被继承了。如果子类中出现与父类同名的成员函数,则子类的同名成员会隐藏掉父类中的所有同名成员函数。中访问它私有继承的基类的成员,那也只能在这个类中增加 get、set 方法了。如果想访问父类中的同名成员函数,需要在对象后加上作用域。访问父类成员属性:Son::Base::m_A;
C++入门学习:继承中同名成员的处理方式
子类对象 访问父类中的同名成员 需要添加作用域
C++ 类和对象 继承 静态与非静态同名成员的访问 多继承语法 菱形继承 虚继承及其底层实现
C++ 类和对象 继承 静态与非静态同名成员及函数处理方式 多继承语法 菱形继承及解决办法 虚继承及其底层实现
c++中继承同名成员处理
1.非静态成员 #include<iostream> #include<string> using namespace std; //同名成员处理 class base { public: base() { m_a=10; } int m_a; void fun() { cout << "base-fun的调用" << endl; } void fun(int a) { cout << "base-fun(int a)的
C++(类的继承)
继承的基本使用;多继承;虚继承
C++:继承
一.继承的基本概念 类的关系: 拥有 has-A :类B中有类A的对象 例如:A a 使用use -A :类B中有函数 例如:int func(A &a) 继承 is-A :一个类从另一个类获取成员函数和成员变量的过程(类似于父进程与子进程) 类B继承类A的那一刻拥有A的所有功能 继承:class 新类:访问控制(public、protected、private) 要继承的类 二....
4.6.7多继承语法
4.6.7多继承语法 #include <iostream> using namespace std; //多继承 //class 子类:继承方式,父类1,继承方式,父类2 class Base1 { public: Base1() { m_a = 100; } int m_a; }; class Base2 { public: Base2() { m_a = 200; } int m_a; }; class Son:public Base1,public Base2
2244



被折叠的 条评论
为什么被折叠?



