#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Person
{
public:
//1、静态成员变量
//静态成员变量 :编译阶段就分配了内存
//因为数据共享,不属于某一个变量,所有要提前准备好
//类内声明、 类外初始化
//静态成员变量:所有对象都共享同一份数据
static int m_A;
//为什么不是通过构造函数访问?
//因为可以不创建对象访问数据,这时候不会走构造函数
//2、静态成员函数
//所有的对象都共享同一个func函数
static void func()
{
//m_C = 100; //静态成员函数 不能访问非静态成员变量 因为无法区分到底要修改哪个对象
m_A = 100; //静态成员函数 能访问静态成员变量 因为不需要区分
cout << "func调用" << endl;
}
int m_C;
private:
static int m_B; //私有的静态成员变量
static void func2()
{
}
};
int Person::m_A = 0;//类外初始化静态成员变量
int Person::m_B = 0;
void test01()
{
//1、通过对象进行访问
Person p1;
cout << p1.m_A << endl;
Person p2;
p2.m_A = 100;
cout << p1.m_A << endl;
//2、通过类名进行访问
cout << Person::m_A << endl;
//静态的成员变量也是有访问权限的,私有权限类外访问不到
//cout << Person::m_B << endl;
}
void test02()
{
//通过对象
Person p1;
p1.func();
//通过类名
Person::func();
//Person::func2(); 静态成员函数也是有访问权限
}
int main(){
//test01();
test02();
system("pause");
return EXIT_SUCCESS;
}
肆-拾伍|静态成员
最新推荐文章于 2024-11-04 16:58:15 发布
本文介绍了C++中类的静态成员变量和静态成员函数的概念及使用方法。通过实例展示了如何通过对象和类名访问静态成员,强调了静态成员的共享性质及其与非静态成员的区别。同时,探讨了静态成员函数的限制,即不能直接访问非静态成员变量。
摘要由CSDN通过智能技术生成