#include <iostream>
using namespace std;
class Person
{
public:
//静态成员变量 特点:
//1 在编译阶段分配内存
//2 类内声明,类外初始化
//3 所有对象共享同一份数据
static int m_A; //静态成员变量
int m_B;
//静态成员函数 特点:
//1 程序共享一个函数
//2 静态成员函数只能访问静态成员变量
static void func() //静态成员函数
{
cout << "func调用" << endl;
m_A = 100; // 正确,因为 m_A 是静态成员变量
//m_B = 100; // 错误,m_B 不是静态成员变量,不可以访问
cout << "m_A =" << m_A << endl;
}
private:
//静态成员函数也可以控制访问权限
static void func2()
{
cout << "func2调用" << endl;
}
};
// 静态成员变量,类外初始化;
// 由于所有对象共享静态成员变量 m_A,因此允许不创建对象来初始化静态成员变量 m_A
// 直接 类名::m_A 初始化即可
int Person::m_A = 10;
int main() {
//静态成员变量,有两种访问方式
//1、通过创建一个对象来访问
Person p1;
p1.func();
//2、通过 类名:: 直接访问
Person::func();
//Person::func2(); // func2 是私有权限的,无法访问
return 0;
}
类中静态成员,所有对象共享
最新推荐文章于 2022-09-16 17:12:27 发布