问答题
请使用VC6或使用[答题]菜单打开考生文件夹proj1下的工程proj1,其中包含类Myaass的定义。程序中位于每个“//ERROR ****found****”下的一行语句有错误,请加以更正。更正后程序的输出结果应该是:
The value is 5
The value is 10
注意:只修改每个“//ERROR ****found****”下的那一行,不要改动程序中的其他内容。
#include <iostream>
using namespace std;
class MyClass {
public:
// ERROR ********** found**********
voidMyClass() {value = 0;}
// ERROR ********** found**********
void setValue(int val) const
{
value=val;
}
int getValue() const { return value; }
private:
//ERROR **********found**********
int value=0;
};
int main()
{
MyClass obj;
obj.setValue(5);
cout << "The value is" << obj. getValue() << endl;
obj.setValue(10);
cout << "The value is" << obj. getValue() << endl;
return 0;
}
【正确答案】(1)MyClass(){value=0;}
(2)void setValue(int val)
(3)int value;
【答案解析】[考点] 本题考查的是:MyClass类,其中涉及构造函数、成员函数和const函数。
[解析] (1)主要考查考生对构造函数的掌握,构造函数前不能添加任何返回类型。
(2)主要考查考生对const的掌握,由函数中value=val;语句,可知成员的值发生改变,因此不能用const。
(3)主要考查考生对私有成员的掌握,私有成员只能声明,不能赋初始值。