填空题
有以下程序
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass();
~MyClass();
static int s;
void SetValue(int val);
};
int MyClass::s=0;
MyClass::MyClass()
{
s++;
}
void MyClass::SetValue(int val)
(
s=val;
}
int main()
{
MyClass my[3],*p;
p=my;
for(int k=0;k<3;k++)
{
p->SetValue(k+l);
p++;
}
cout<<MyClass::s<<end1;
return 0;
}
运行后的输出结果是{{U}} 【11】 {{/U}}。
【正确答案】
1、3
【答案解析】[解析] 本题考核静态数据成员。本题程序中把变量s定义为静态数据成员,它被 MyClass类的所有对象所共享,但它不属于类的任何一个对象,它的作用域是类范围。
在类MyClass的构造函数中,每创建一个对象,s就增1,由此可知s用来记录建立对象的个数。由于创建对象指针p时并不会调用构造函数,所以s最后的值是3。