问答题 请使用VC6或使用【答题】菜单打开考生文件夹pmj1下的工程pmj1,此工程中含有一个源程序文件pmj1.cpp。其中位于每个注释“//ERROR ****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: The value is:10注意:只修改注释“//ERROR ****found****”的下一行语句,不要改动程序中的其他内容。//proj1.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 val){} int GetValue()const{return m.value;)};int main(){ MyClass*obj=new MyClass(i0); //ERROR********found******** 下列语句输出obj指向类中的value值 cout<<”The value is:”<<obj.GetValue()<<endl; delete 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)指针调用类的成员函数时,应使用标识符“一>”。