有以下程序: #include <iostream> using namespace std; class MyClass { int m; publ i c: static int n;

admin2013-02-27  15

问题 有以下程序:     #include <iostream>     using namespace std;     class MyClass     {        int m;     publ i c:        static int n;        MyClass ( )        {            m = 0;        }        void setvalue()       {          m++;          n++;       }       void output ()       {          cout<<"m="<<m<<’’ , n="<<n<<end1;       }    };    int MyClass  ::  n=0;    int main()    {           MyClass obj1,  obj2;           obj1.setvalue();           objl.output();           obj2.setvalue();           obj2.output();           return 0;    }

选项 A、m= 1 ,n= 1 <换行>m= 1 ,n=1
B、m= 1 ,n= 1 <换行>m=1 ,n=2
C、m=1,n=1<换行>m=2,n=1
D、m=1,n=1<换行>m=2,n=2

答案2

解析 本题考核静态数据成员的应用。类中的数据成员n为静态变量,这种类型变量采用静态存储分配。当函数执行完后,返回调用点,该变量并不撤销,其值将继续保留。内部静态变量有隐含初始值0,并且只在编译时初始化一次。而类中的数据成员m为auto变量,每次程序退出其作用域时将自动消失。所以其值不能保留下来。
转载请注明原文地址:https://jikaoti.com/ti/I0L0FFFM
0

最新回复(0)