操作题   请使用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) : v1 (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;
    }
 
【正确答案】return MyClass::v2; int MyClass::v2=42; int v1=obj.getValue();
【答案解析】[考点] 本题考查的是MyClass类,其中涉及静态数据成员、构造函数和成员函数。 (1)主要考查考生对静态成员函数的掌握情况,根据函数定义:static int getValue(int dummy)可知,函数要求返回一个静态整型值。 (2)主要考查考生对静态成员的掌握情况,给静态成员赋值要使用作用域符“::”。 (3)主要考查考生对成员函数的掌握情况,由于v1是类的私有成员,故不能被main函数直接调用。