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

admin2021-06-10  25

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程包含有一个源程序文件proj1.cpp。
其中位于每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
(4,4)
注意:只修改注释“//ERROR****found****”的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include
usingnamespacestd;
classPoint{
public:
//ERROR********found********
Point(doublex,doubley)_x(x),_y
(y){}
doubleGetX()const{returnx;}
doubleGetY()const{return-y;}
//ERROR********found********
voidMove(doublexOff,double
yOff)const
{_x+=xOff;_y+=yOff;}
protected:
double_x,_y;
};
intmain()
{
Pointpt(1.5,2.5);
pt.Move(2.5,1.5);
//ERROR********found********
以下语句输出pt成员_x和_y的值
cout<<’(’<<<’)’<return0;
}

选项

答案(1)Point(doublex,doubley):一x(x),一y(y)}}或Point(doublex,doubley){—x=x;-y=y;} (2)voidMove(doublexOff,doubleyOff) (3)cout<<’(’<
解析 (1)主要考查的是构造函数的成员初始化列表的语法,在成员列表之前必须加“:”。
(2)主要考查成员函数中const的使用,先看Move函数的函数体:
{_x+=xOff;_y+=yOff;}
可以看到Point类的两个私有成员一x和一y的值都发生了变化,因此Move函数不能使用const,因为只有在函数内不改变类的成员的值时才能使用const。
(3)主要考查私有成员不能被类外函数调用的知识。题目要求输出pt成员_x和_y的值,从Point类中的函数doubleGetX()eonst{return_x;}和doubleGetY()const{retum_y;},可以分别得到_x和_y的值,因此这里使用语句cout<<’(’<
转载请注明原文地址:https://kaotiyun.com/show/m0fp777K
0

最新回复(0)