一、静态成员变量
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;//10
Persion 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;//18
cout << name << endl;//WQ
}
};
int Persion::m_Age = 18;
void main()
{
//1、通过对象调用静态函数
Persion p;
p.func();
p.func02();
//2、通过,类名访问
Persion::func();
//Persion::func02();//err
}