【每日一练】(第2期)关于静态成员的理解

来源:互联网 发布:动态qos 知乎 编辑:程序博客网 时间:2024/05/23 19:32
//思考题一://  testStatic.cpp  :  请问下面的代码有没有错误?怎么理解?//#include  <iostream>using  namespace  std;class  A{public:    int  i;    static  A  a;};A  A::a;int  main(){    A::a.a.a.a.a.a.a.i  =  123;    cout  <<  A::a.a.a.i  <<  endl;    system("pause");}

【答案】

这道题主要是考察对静态成员的理解。因为静态成员a存放在静态数据区,a里面有一个i,sizeof(A)是4,只包含i。A::a.a.a的意思就是取A类的静态成员a,a.a的意思a的静态成员a,也就是取A类的静态成员a,所以无论写多少次都没关系。

 

这道题目还有一个启示,就是因为static成员是独立于任何对象而存在,不属于任何任何对象的组成部分,所以static数据成员的类型可以是该成员所属的类的类型,而普通成数据成员就不能这么定义。

原创粉丝点击