一、静态成员变量
1、说明
1.1、所有对象共享同一份静态变量
1.2、编译阶段分配内存
1.3、类内声明,类外初始化操作
静态成员变量,不属于某个具体的类对象,多有的类对象共享同一份数据
因此静态成员变量有两种方式访问
2、访问方式
2.1、通过对象进行访问
Persion p;
cout << p.m_Age << endl;
2.2、通过类名访问类的静态成员变量
cout <<"test02:" << Persion::m_Age << endl;//100
3、访问权限
3.1静态成员变量同样适用类的访问权限
public://一定记得public还是private访问权限的问题static int m_Age;
#include <iostream>
#include <string.h>
using namespace std;//静态成员变量
//1、所有对象共享同一份静态变量
//2、编译阶段分配内存
//3、类内声明,类外初始化操作
class Persion
{public://一定记得public还是private访问权限的问题static int m_Age;};
//记得添加类型
int Persion::m_Age = 10;void test()
{Persion p1;cout << p1.m_Age << endl;//10Persion p2;p2.m_Age = 100;cout << p1.m_Age << endl;//100
}
void test02()
{//静态成员变量,不属于某个具体的类对象,多有的类对象共享同一份数据//因此静态成员变量有两种方式访问//1、通过对象进行访问//Persion p; //cout << p.m_Age << endl;//通过类名访问类的静态成员变量cout <<"test02:" << Persion::m_Age << endl;//100
}
void main()
{test();test02();}
二、静态成员函数
1.1说明
静态成员函数
1.1、所有对象共享一个静态成员函数
1.2、静态成员函数只能访问静态成员耐属性(可以用作单利模式)
#include <iostream>
#include <string.h>using namespace std;//静态成员函数
//1、所有对象共享一个静态成员函数
//2、静态成员函数只能访问静态成员耐属性(可以用作单利模式)
class Persion
{
public:static int m_Age;string name = "WQ";static void func(){m_Age = 100;cout << m_Age << endl;//cout << name << endl;//err}void func02(){cout << m_Age << endl;//18cout << name << endl;//WQ}};
int Persion::m_Age = 18;
void main()
{//1、通过对象调用静态函数Persion p;p.func();p.func02();//2、通过,类名访问Persion::func();//Persion::func02();//err}