问题
单项选择题
有以下程序:
#include<iostream>
using namespace std;
class MyClass
public:
MyClass();
~MyClass();
void SetValue(int val);
private:
static int i;
;
int MyClass::i=0;
MyClass::MyClass()
i++;
cout<<i;
MyClass::~MyClass()
i--;
cout<<i;
void MyClass::SetValue(int val)
i=val;
int main()
MyClass*my[2];
int k;
for(k=0;k<2;k++)
my[k]=new MyClass;
for(k=0;k<2;k++)
delete my[k];
return 0;
运行后的输出结果是( )。
A) 1210
B) 1100
C) 1234
D) 输出结果不确定
答案
参考答案:A
解析: 类MyClass中变量i是静态数据成员,它被MyClass类的所有对象共享,但它不属于任何一个对象,它的作用域是类范围。程序i是用来统计类MyClass所创建对象的个数,每创建一个对象i加1,每删除MyClass类对象i减1。