静态成员:在成员变量和成员函数前加上关键字static。
静态成员分为:
静态成员变量:
1.在编译阶段分配内存。
2.类内声明,类外初始化。
3.所有对象共享同一份数据。
静态成员函数:
1.所有对象共享同一个函数。
2.静态成员函数只能访问静态成员变量。
静态变量的两种访问方式:
1.通过对象。
2.通过类名。
#include<iostream>
using namespace std;
class WLM
{
public:
static int m_a;
private:
static int m_b;
};
int WLM::m_a = 10;
int WLM::m_b = 20;
class ZJY
{
public:
static void func()
{
cout << "func调用" << endl;
m_a = 100; //静态成员函数只能访问静态成员变量
//m_b = 100; 错误
}
static int m_a;
int m_b;
private:
static void func2()
{
}
};
int ZJY::m_a = 10;
void test1()
{
//静态成员变量两种访问方式
//1.通过对象
WLM wlm1;
wlm1.m_a = 100;
cout << "wlm1.m_a = " << wlm1.m_a << endl;
WLM wlm2;
wlm2.m_a = 200;
cout << "wlm1.m_a = " << wlm1.m_a << endl; //所有静态成员变量共享同一份数据
cout << "wlm2.m_a = " << wlm2.m_a << endl;
//2.通过类名
cout << "m_a = " << WLM::m_a << endl;
//cout << "m_b" << WLM::m_b << endl; 静态成员变量也有访问权限
}
void test2()
{
//静态成员变量两种访问方式
//1.通过对象
ZJY zjy;
zjy.func();
//2.通过类名
ZJY::func();
//ZJY::func2(); //错误,静态成员函数也有访问权限
}
int _tmain(int argc, _TCHAR* argv[])
{
test1();
test2();
system("pause");
return 0;
}
原创文章,作者:sunnyman218,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/277518.html