#include <iostream>
using namespace std;
//当其他类对象作为本类成员,先构造成员中的类对象,再构造自身,析构顺序相反
//静态成员变量:
//1.所有对象共享同一份数据,内存中只有一份
//2.在编译阶段分配内存,在全局区
//3.类内声明,类外初始化
//静态成员函数:
//1.所有对象共享同一个函数
//2.静态成员函数只能访问静态成员变量
class person{
public:
static int m_a;
//静态成员变量不属于某个对象,所有对象共享同一份数据
//静态成员变量有两种访问方式
//1.通过对象访问
//2.通过类名访问
static void func()
{
cout<<"静态函数的调用"<<endl;
}
//静态成员变量也是有访问权限的,类外不能访问
//静态成员函数也是有访问权限的,类外不能访问
private:
static int m_b;
};
int person::m_a=10;
int person::m_b=200;
void test01(){
person p;
cout<<p.m_a<<endl;//通过对象访问
person p2;
p2.m_a=20;
cout<<p.m_a<<endl;
cout<<person::m_a<<endl;//通过类名访问
//cout<<person::m_b<<endl;//受作用域限制
}
void test02(){
//1.通过对象访问
person p;
p.func();
//2.通过类名访问
person::func();
}
int main ()
{
//test01();
test02();
return 0;
}
静态成员变量和静态成员函数
最新推荐文章于 2024-05-20 23:52:50 发布