问答题
请使用VC6或使用[答题]菜单打开考生文件夹proj1下的工程proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
There are 2 object(s).
注意:只修改注释“//ERROR ****found****”的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include <iostream>
using namespace std;
class MyClass {
public:
// ERROR **********found**********
MyClass(int i = 0) value = i
{ count ++; }
void Print()
{ cout <<"There are" << count <<"object(s)." << endl; }
private:
const int value;
static int count;
};
// ERROR **********found**********
static int MyClass::count = 0;
int main()
{
MyClass obj1, obj2;
// ERROR **********found**********
MyClass.Print();
return 0;
}
【正确答案】(1)MyClass(int i=0):value(i)
(2)int MyClass::count=0;
(3)obj2.Print();
【答案解析】[考点] 本题考查MyClass类,其中涉及构造函数、成员函数、常变量和静态数据成员。
[解析] (1)主要考查考生对构造函数的掌握,使用成员列表初始化给常变量赋初始值。
(2)主要考查考生对静态数据成员的掌握,静态数据成员的赋值不需要使用static关键字。
(3)主要考查考生对成员函数调用的掌握,MyClass是类名,不能调用函数,应使用对象obj2调用函数。