单选题
有以下程序:
#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;
【正确答案】
B
【答案解析】[解析] 本题考核静态数据成员的应用。类中的数据成员n为静态变量,这种类型变量采用静态存储分配。当函数执行完后,返回调用点,该变量并不撤销,其值将继续保留。内部静态变量有隐含初始值0,并且只在编译时初始化一次。而类中的数据成员m为auto变量,每次程序退出其作用域时将自动消失。所以其值不能保留下来。