阅读下列程序说明和C++代码,将应填入(n)处。 【说明】 ①在类体中添加函数move(double ax,double ay)的定义,使得点的坐标x和y分别移动 ax和ay个单位。 ②在类定义外完成重载的两个构造函数CPosition

admin2009-02-15  25

问题 阅读下列程序说明和C++代码,将应填入(n)处。
    【说明】
   ①在类体中添加函数move(double ax,double ay)的定义,使得点的坐标x和y分别移动 ax和ay个单位。
   ②在类定义外完成重载的两个构造函数CPosition()和CPosition(double dx,double dy),其中前者为不带参数的构造函数,使CPosition对象的默认值为x=0,y=0,后者为带参数的构造函数,把数据成员x和y分别初始化为参数dx和dy的值。
   ③完成函数double distance(double bx,double by)的定义,该函数返回*this和点(bx, by)的距离。
   注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。
   源程序文件test5.cpp清单如下:
   #include<iostream.h>
   #include<math.h>
   class CPosition
   {
   public:
     CPosition();
     CPosition(double dx,double dy);
     double getx();
     double gety();
       (1)  
     double distance(double bx,double by);
   private:
     double x;
     double y;
   };
     (2)  
   {
     x=0;y=0;
   }
   CPosition::CPosition(doub,e dx,doub,e dy)
   {
     x=dx;  y=dy;
   }
   double CPosition::getx()
   {
   return x;
   }
   double CPosition::gety()
   {
   return y;
   }
   double CPosition::distance(double bx,double by)
   {
       (3)  
   }
   vold main()
   {
     double a,b;
     cout<<"|nput x,y position of a point:";
     cin  >>  a  >>  b;
     CPosition psA(a,b);
     cout<<"Input x,y position of another point:";
     cin  >>a  >>  b;
     cout  <<"The distance is"  <<psA.distance(a,b)  <<end1;
   }

选项

答案(1)void move(double ax,double ay){x+=ax;y+ =ay;}; (2)CPosition::CPosition()(3)return sqrt(pow(x-bx, 2)+pow(y-by,2));

解析 本题主要考查考生对于类的定义和重载构造函数的掌握情况。在(3)中使用了基本的数学函数sqrt(x)求x的开方,pow(x,n)函数是求x的n次方。
转载请注明原文地址:https://jikaoti.com/ti/Twi7FFFM
0

相关试题推荐
最新回复(0)