请打开考生文件夹下的解决方案文件projl,此工程中含有一个源程序文件projl.cpp。其中位于每个注释“//ERROR ****found ****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: The value is:10

admin2021-07-02  25

问题 请打开考生文件夹下的解决方案文件projl,此工程中含有一个源程序文件projl.cpp。其中位于每个注释“//ERROR  ****found ****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
    The value is:10
    注意:只修改注释“//ERROR  ****found****”的下一行语句,不要改动程序中的其他内容。
    //proj 1.cpp
    #include<iostream>
    using namespace std;
    class Member{
    //ERROR:*******found*******
    private:
      Member(int val):value(val){}
      int value;
    };
    class MyClass{
      Member _m;
    public:
    //ERROR  ******* found *******
      MyClass(int va1){}
      int GetValue()const{ return _m.value;}
    };
    int main()
    {
      MyClass * obj=new MyClass(10);
    //ERROR  *******found*******
    下列语句输出obj指向类中的value值
      cout<<  "The value is:"  <<obj.GetValue()<<endl;
      defete obj;
      return 0;
    }

选项

答案(1)public: (2)MyClass(int val):_m(val){}或MyClass(int val){_m=Val} (3)cout<<"The value is:"<<obj->GetValue()<<endl:

解析 (1)主要考查考生对私有成员和公有成员的掌握,先看改错语句的下一条语句:Member(int val):value(val){},该语句是一个构造函数,因此我们可以得出此处为公有成员,因为构造函数不可能是私有成员。
    (2)主要考查构造函数,构造函数要对类的成员进行初始化,因此在这里使用成员列表初始化,即MyClass(int val):_m(val){}或MyClass(int val){_m=val}。
    (3)指针调用类的成员函数时,应使用标识符“一>”。
转载请注明原文地址:https://kaotiyun.com/show/Vefp777K
0

最新回复(0)