请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程pmjl,此工程中含有一个源程序文件pmj1.cpp。 其中位于每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: Thevalue

admin2020-07-23  41

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程pmjl,此工程中含有一个源程序文件pmj1.cpp。
其中位于每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
Thevalueofmemberobjectsis8
注意:只修改注释“//ERROR****found****”的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include
usingnamespacestd;
ClaSsHember
{
public:
Hember(intx){val=x;}
intGetData(){returnval;}
private:
//ERROR********found********
intval=0;
};
classHyClass
{
public:
//ERROR********found********
HyClass(intX){data=x;}
voidPrint()
//ERROR********found********
{cout<<"ThevalueOfmemberobjectis"<private:
Hemberdata;
};
intmain()
{
HyClassobj(8);
obj.Print();
return0;
}

选项

答案(1)int val; (2)MyClass(int x) : data(x) {} (3){ cout<< "The value of member object is "<< data.GetData()<< endl; }

解析 (1)主要考查考生对私有成员的掌握情况,类的私有成员只能声明而不能对其赋初值。
(2)主要考查考生对构造函数的掌握情况,data是Member类,而x是int型,因此这里使用成员列表初始化法,调用Member的构造函数初始化。
(3)主要考查考生对成员函数的掌握情况,val为私有成员,因此不能被类外函数调用。
转载请注明原文地址:https://jikaoti.com/ti/9bl0FFFM
0

最新回复(0)