#include<iostream>
using namespace std;
//静态成员变量
class Person
{
public:
//1,所有对象都共享同一份数据
//2,编译阶段就分配了内存
//3,类内声明,类外初始化操作
static int m_A;
//静态成员变量的访问权限
int getB() {
return m_B;
}
static void func2() {
func();
}
private:
static int m_B;
static void func() {
cout << "func调用" << endl;
}
};
int Person::m_A = 100;
int Person::m_B = 200;
void test01() {
Person p;
cout << p.m_A << endl;
Person p2;
p2.m_A = 200;
cout << p.m_A << endl;
}
void test02() {
//静态成员变量,不属于某个对象,所有对象共享同一份数据
//因此静态成员有两种访问方式
//1,通过对象访问
Person p;
cout << p.m_A << endl;
//2,通过类名访问
cout << Person::m_A << endl;
//cout << Person::m_B << endl; //类外无法访问私有的静态成员变量
cout << p.getB() << endl; //通过公有的成员函数访问私有的静态成员变量
Person::func2(); //通过公有的静态成员函数访问私有的静态成员函数
}
int main() {
//test01();
test02();
system("pause");
return 0;
}