1. 静态成员
静态成员就是在成员变量和成员函数前加上关键字static,成为静态成员。
静态成员分为:
1.静态成员变量,有访问权限
1.所有对象共享同一份数据
2.在编译阶段分配内存(全局区)
3.类内声明,类外初始化
2.静态成员函数,有访问权限
1.所有对象共享同一个函数
2.静态成员函数只能访问静态成员变量
1.静态成员变量
//静态成员变量
class Person{
public:
//所有对象共享一份数据
//在编译阶段分配内存(全局区)
//类内声明,类外初始化操作
static int m_A;
//静态成员变量也是有访问权限的
private:
static int m_B;
};
//类外初始化
int Person::m_A = 100;
int Person::m_B = 200;
void main(){
Person p1;
p1.m_A = 100;//此时m_A为100
Person p2;
p2.m_A = 200;//此时m_A为200
/*静态成员变量不属于某个对象上,所有对象都共享一份数据,
因此静态成员变量有两种访问方式。*/
//1.通过对象进行访问
cout << p1.m_A << endl;
//2.通过类名进行访问
cout <<Person::m_A<<endl;
//静态成员变量也是有访问权限的
cout <<Person::m_B<<endl;//报错,m_B是私有权限访问不到
}
2.静态成员函数
//静态成员函数,也是有访问权限的
//所有对象共享一个函数
//静态成员函数只能访问静态成员变量
class Person{
public:
int m_B;
//静态成员变量,类内声明
static int m_A;
//静态成员函数
static void func(){
m_A = 200;//可以
m_B = 200//报错,
//静态成员函数只可以访问静态成员变量,非静态不可以
cout<<"static void func"<<endl;
}
};
//类外初始化
int Person::m_A = 100;
void main(){
//两种访问方式
//1.通过对象访问
Person p;
p.func();
//2.通过类名访问
Person::func();
}
本文深入探讨了C++中的静态成员,包括静态成员变量和静态成员函数。静态成员变量在所有对象间共享,存储在全局区,并在编译时分配内存。静态成员函数则不依赖于特定对象,只能访问静态成员变量。示例代码展示了如何声明、初始化和使用静态成员。
2394

被折叠的 条评论
为什么被折叠?



