请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,此工程包含一个源程序文件proj3.cpp,其中定义了用于表示二维向量的类MyVector;程序应当显示(6,8)。但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:

admin2017-02-21  27

问题 请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,此工程包含一个源程序文件proj3.cpp,其中定义了用于表示二维向量的类MyVector;程序应当显示(6,8)。但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:
    (1)在“//**1** ****found****”的下方是构造函数的定义,它用参数提供的坐标对χ和y进行初始化。
    (2)在“//**2** ****found****”的下方是减法运算符函数定义中的一条语句。两个二维向量相减生成另一个二维向量:其X坐标等于两向量X坐标之差,其Y坐标等于两向量Y坐标之差。
    (3)在“//**3** ****found****”的下方,语句的功能是使变量v3获得新值,它等于向量v1与向量v2之和。
    注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“****found*****”。
//proj 3.cpp
#include<iostream>
using std∷ostream;
using std∷cout;
using std∷end1;
class MyVector{//A示二维向量
的类
  double x;//X坐标值
  double y;//Y坐标值
public:
  MyVector(double i=0.0,
double j=0.0); //构造函数
  MyVector operator+(Myvec
tor j);    //重载运算符+
  friend MyVector operator-(MyVector i,MyVector J);  //重载运算符-
  friend ostream&operator <<(
ostream&OS,MyVector v);  //重载运算符<<
};
//**1** *******found*******
_______(double i,double j):
x(i),Y(j){)
MyVector Myvector∷operator+(
MyVector j){
  return MyVector(x+j.x,y+
j.y);
}
MyVector operator-(MyVector
i,MyVector j)
{//**2**  *******found*******
return M:yvector(_______);
}
ostream&operator<<(ostream&
os,MyVector V){
    OS  <<′(′<<V.X  <<′,′<<v.y
<<′)′;//输出向量v的坐标
  return os;
}
int main()
{
Myvector v1(2,3),v2(4,5),v3;
//**3** *******found*******
v3=_______;
cout<<v3<<end1;
return 0;
}

选项

答案(1)MyVector∷MyVector (2)i.x-j.x,i.y÷j.y (3)v1+v2

解析 (1)主要考查的是构造函数,在类外定义构造函数时要使用类名和作用域,即MyVector∷MyVector。
    (2)主要考查重载运算符“-”的返回语句,返回值应为向量i和j的差,即MyVector(i.x-j.x,i.y-j.y);。
    (3)主要考查重载运算符“+”的使用,由题目可知v3是v1和v2的和,前面我们已经重新定义了运算符“+”,所以在这里直接使用语句v3=v1+v2:即可。
转载请注明原文地址:https://jikaoti.com/ti/WXt0FFFM
0

最新回复(0)