c++ 学习 之 继承中静态成员函数和静态成员变量

#define _CRT_SECURE_NO_WARNINGS

#include

using namespace std;

class Base

{

public:

static int m_A; // 静态成员变量

static void func() // 静态成员函数

{

cout << "Base 下的 静态成员函数" << endl;

}

};

int Base::m_A = 200; // 初始化静态成员变量

class Son : public Base

{

public:

static int m_A; // 与父类同名的静态成员变量

static void func() // 与父类同名的静态成员函数

{

cout << "Son 下的 静态成员函数" << endl;

}

};

int Son::m_A = 100; // 初始化子类中同名的静态成员变量

void test01()

{

Son p;

// 通过对象来访问

cout << p.m_A << endl; // 未说明就是子类的

cout << p.Base::m_A << endl; // 使用作用域解析运算符访问父类的静态成员变量

// 通过类名进行访问

cout << Son::m_A << endl; // 直接访问子类的同名静态成员变量

cout << Son::Base::m_A << endl; // 使用两次作用域解析运算符访问父类的静态成员变量

}

void test02()

{

Son s;

s.func(); // 调用子类的静态成员函数

s.Base::func(); // 使用作用域解析运算符调用父类的静态成员函数

Son::func(); // 直接调用子类的静态成员函数

Son::Base::func(); // 使用两次作用域解析运算符调用父类的静态成员函数

}

int main()

{

// 在这里你可以调用 test01() 或 test02() 来测试上述代码的输出

}

相关推荐
二进制人工智能7 分钟前
【OpenGL学习】(四)统一着色和插值着色
c++·opengl
a45763687622 分钟前
Objective-c protocol 练习
开发语言·macos·objective-c
fajianchen23 分钟前
Spring中观察者模式的应用
java·开发语言
追风赶月、33 分钟前
【QT】控件一(QWidget、Button、Label)
开发语言·qt
MYH51639 分钟前
无监督 vs 有监督的本质区别
开发语言
Humbunklung1 小时前
JavaScript 将一个带K-V特征的JSON数组转换为JSON对象
开发语言·javascript·json
普通的冒险者1 小时前
微博项目(总体搭建)
java·开发语言
ubax1 小时前
day 51 python打卡
开发语言·python
BAGAE1 小时前
Flutter 与原生技术(Objective-C/Swift,java)的关系
java·开发语言·macos·objective-c·cocoa·智慧城市·hbase
咖啡の猫1 小时前
JavaScript基础-DOM事件流
开发语言·javascript·microsoft