问答题 请使用VC6或使用[答题]菜单打开考生文件夹proj1下的工程prog1。其中位于每个“//ERROR ****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: v1=23;v2=42 注意:只修改每个“//ERROR ****found****”下的那一行,不要改动程序中的其他内容。 #include <iostream> using namespace std; class MyClass { int v1; static int v2; public: MyClass(int v) : vl (v) {} int getValue() const { return v1; } static int getValue(int dummy) { // ERROR ********** found********** return v1; } }; // ERROR ********** found********** int MyClass.v2 = 42; int main() { MyClass obj (23); // ERROR ********** found********** int v1 = obj.v1; int v2 = MyClass::getValue(0); cout << "v1 = " << v1 << "; v2 = "<< v2 << endl; return 0; }
【正确答案】(1)return MyClass::v2; (2)int MyClass::v2=42; (3)int v1=obj.getValue();
【答案解析】[考点] 本题考查的是MyClass类,其中涉及静态数据成员、构造函数和成员函数。 [解析] (1)主要考查考生对静态成员函数的掌握情况,根据函数定义:static int getValue(int dummy)可知,函数要求返回一个静态整型值。 (2)主要考查考生对静态成员的掌握情况,给静态成员赋值要使用作用域符“::”。 (3)主要考查考生对成员函数的掌握情况,由于v1是类的私有成员,故不能被main函数直接调用。