请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中定义了Shape类和Point类。Shape类表示抽象的形状,其成员函数draw声明了显示形状的接口。Point是Shape的派生类,表示平面直角坐标系中的点,其成员函数draw

admin2015-06-27  7

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中定义了Shape类和Point类。Shape类表示抽象的形状,其成员函数draw声明了显示形状的接口。Point是Shape的派生类,表示平面直角坐标系中的点,其成员函数draw用于在屏幕上显示Point对象;成员函数distance
用于计算两个点之间的距离。提示:在平面直角坐标系中,点(x1,y2)和点(x1,y2)之间的距离为:d=;标准库函数sprt用于求平方根。
请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
(3,0)
(0,4)
Distance:5
注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“****found****”。
#include
#include
usingnamespacestd;
classShape{
public:
//**********found**********
virtual~Shape(){}
};
classPoint:publicShape{
public:
Point(doublex,doubley).x_(x),y_(y)
{}
virtualvoiddraw()const;
//**********found**********
doubledistance(________)const
{
returnsqrt((x_pt.x_)*(x_
pt.x_)+(y_-pt.y_)*(y1_-pt.y_));
}
private:
//**********found**********
};
voidPoint::draw()const
{
//**********found**********
cout<<’<<’<<________<<’)’<}
intmain()
{
Point*pt1=newPoint(3,0);
Point*pt2=newPoint(0,4);
Shape*s=pt1;
s->draw();
s=pt2;
s->draw();
cout<<"Distance="<
distance(*pt2)<deletept1;
deletept2;
return0;
}

选项

答案(1)virtual void draw() const =0; (2)const Point& pt (3)double x_, y_; (4)x_ << ’,’<< y_

解析 (1)主要考查考生对纯虚函数的掌握,参考在派生类中该函数的定义可得到,注意纯虚函数要"=0"。
(2)主要考查考生对成员函数的掌握,由函数体可知形参为const Point& pt。
(3)主要考查考生对私有成员的掌握,由构造函数可知私有成员为double x_, y_。
(4)根据题目要求输出私有成员变量x_,y_。
转载请注明原文地址:https://jikaoti.com/ti/E8XiFFFM
0

最新回复(0)