//静态成员变量--在静态区或全局区给静态区初始化
//类外的单独初始化静态变量,是为了保证只创建一次(仅只有这一个);
//同类型的所有对象都共享静态区变量;
//static修饰的成员变量不占有类对象的空间:由于静态成员变量定义在静态区定义内存,
// 而对象是存在于动态区之中,所以静态成员变量并不占用类对象的内存空间。
#include<iostream>
using namespace std;
class A
{
public:
int age;
static int num;
A (int age):age(age){}//初始化列表是为了给 非静态成员初始化
void showInfo()
{
cout<<age<<endl;
}
};
int A::num=8888;//num 不给值时默认时0,只被创建一次和初始化一次
//num 的初始化和 对象 没有任何关系;就算没有创建对象 ,也可以访问到 num;
int main()
{
//可以直接使用类名 + 域名访问符的形式,直接访问。
cout<<"-没有创建对象也可访问到静态区变量--"<<A::num<<endl;//8888
A xm(15);
xm.showInfo();//15
cout<<xm.num<<endl;//8888
//修改num的值
xm.num=12;
cout<<xm.num<<endl;//12
A xg(13);
cout<<xg.num<<endl;//12--上面被改了,所以是12;
return 0;
}
10-03
7580
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
01-03
811
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交