操作题   请使用VC6或使用[答题]菜单打开考生文件夹proj1下的工程proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR ****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
    The value of member objects is 8
    注意:只修改注释“//ERROR ****found****”的下一行语句,不要改动程序中的其他内容。
    //proj1.cpp
    #include <iostream>
    using namespace std;
    class Member
    {
    public:
    Member(int x) {val =x;}
    int GetData() {return val;}
    private:
    //ERROR ******** found********
    int val =0;
    };
   
    class MyClass
    {
    public:
    // ERROR ******** found********
    MyClass(int x) { data=x; }
    void Print()
    // ERROR ******** found********
    { cout <<'The value of member object is' <<data.val <<endl;}
    private:
    Member data;
    };
   
    int main()
    {
    MyClass obj(8);
    obj.Print();
    return 0;
    }
 
【正确答案】int val; MyClass(int x):data(x){} {cout<<'The value of member object is'<<data.GetData()<<endl;}
【答案解析】[考点] 本题考查的是Member类和MyClass类,其中涉及构造函数和成员函数。 (1)主要考查考生对私有成员的掌握情况,类的私有成员只能声明而不能对其赋初值。 (2)主要考查考生对构造函数的掌握情况,data是Member类,而x是int型,因此这里使用成员列表初始化法,调用Member的构造函数初始化。 (3)主要考查考生对成员函数的掌握情况,val为私有成员,因此不能被类外函数调用。