使用VC6打开考生文件夹下的源程序文件modi3.cpp,通过把类Distance定义为类Point的友元类,来实现计算两点之间距离的功能。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)把类CDistance定义为类CPoint的友

admin2015-07-20  22

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp,通过把类Distance定义为类Point的友元类,来实现计算两点之间距离的功能。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)把类CDistance定义为类CPoint的友元类。请在注.释∥********1********之后添加适当的语句。
(2)定义类CPoint的构造函数,完成给私有数据成员X和Y的赋值,并且两个参数的缺省值都为0。请在注释∥********2********之后添加适当的语句。
(3)完成类CDistance的成员函数length(Point&pPoint,Point&qPoint)的定义,并在其中计算点P、q之间的距离,并且返回结果。假设两点之间的距离distance=sqrt(pPoint.x—qPoint.x)*(pPoint.X-qPoint.x)+(pPoint.y-qPoint.y)*(pPoint.y—qPoint.y))。请在注释∥********3********之后添加适当的语句。
    注意:增加代码,或者修改代码的位置已经用符号表示
出来。请不要修改其他的程序代码。
#inc lude
#incl ude
using namespace std;
Class CPoint
{
publ ic:
   ∥********1********
    //定义类Point的构造函数
  ∥********2********
    void displ ay()  {  COil.t<<
  ”x=”<  <  private:
    floaf x,y;
    };
    Class  CDistanoe
    {
    public:
    floaf l ength(CPoint:&p,
CPoint:&q);
};
floaf CDistance::l ength
(CPoint:&pPoint:,CPoint:&clPoint:)
{
   ∥********3********
    }
    int main()
    {
    CPoint:mPoint(10,10),
nPoint(4 0,5 0);
    mPoint:.displ ay();
    nPoint:.display();
    CDistance ien;
    CoLIt2<nPoint:)<    rel2urrl 0 ;
    }

选项

答案(1)添加语句:friend clasS CDistance; (2)添加语句:CPoint(float a=0,float b=0) {x=a;y=b;) (3)添加语句:return sqrt((pPoint.x— qPoint.x)*(pPoint.x—qPoint.x)+(pPoint.y— qPoint.y)*(pPoint.y—qPoint.y));

解析 (1)第1个标识下补充定义类CDistance为类CPoint的友元类,声明友元类的格式为:friend<类名>:,故第1个标识下应添加“friend class CDistance;”O
(2)类CPoint的构造函数完成给私有数据成员X和Y的初始化,两个参数的缺省值都为0,凶此参数含有默认值0,故第2个标识下应添加“CPoint(float a=0,floatb=0){x=a;y=b;}”0
(3)类CDistance的成员函数length(CPoint&pPoint,CPoint&qPointl返回点P、q之间的距离,可由公式distance=sqrt((pPoint.z-qPoint.x)木(pPoint.X-qPoint.X)+(pPoint.Y.qPoint.y)*(pPoint.y.qPoint.y))计算求得,第3个标识下应添加“return  sqrt((pPoint.x—qPoint.x)*(pPoint.x—qPoint.x)+(pPoint.Y—qPoint.y)*(pPoint.Y-qPoint.y));”0
转载请注明原文地址:https://kaotiyun.com/show/ZCNp777K
0

随机试题
最新回复(0)