静态成员
静态成员就是在成员变量和成员函数前加上关键字static,成为静态成员。
静态成员分为:
1.静态成员变量,有访问权限
1.所有对象共享同一份数据
2.在编译阶段分配内存(全局区)
.类内声明,类外初始化
2.静态成员函数,有访问权限
1.所有对象共享同一个函数
2.静态成员函数只能访问静态成员变量
1.静态成员变量
//静态成员变量classPerson{public://所有对象共享一份数据//在编译阶段分配内存(全局区)//类内声明,类外初始化操作staticintm_A;//静态成员变量也是有访问权限的private:staticintm_B;};//类外初始化intPerson::m_A=;intPerson::m_B=;voidmain(){Personp1;p1.m_A=;//此时m_A为Personp2;p2.m_A=;//此时m_A为//静态成员变量不属于某个对象上,所有对象都共享一份数据,因此静态成员变量有两种访问方式。//1.通过对象进行访问coutp1.m_Aendl;//2.通过类名进行访问coutPerson::m_Aendl;//静态成员变量也是有访问权限的coutPerson::m_Bendl;//报错,m_B是私有权限访问不到}2.静态成员函数
//静态成员函数,也是有访问权限的//所有对象共享一个函数//静态成员函数只能访问静态成员变量classPerson{public:intm_B;//静态成员变量,类内声明staticintm_A;//静态成员函数staticvoidfunc(){m_A=;//可以m_B=//报错,静态成员函数只可以访问静态成员变量,非静态不可以cout"staticvoidfunc"endl;}};//类外初始化intPerson::m_A=;voidmain(){//两种访问方式//1.通过对象访问Personp;p.func();//2.通过类名访问Person::func();}