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

admin2022-11-10  9

问题 请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,此工程包含一个源程序文件proj3.cpp,其中定义了用于表示二维向量的类MyVector;程序应当显示(6,8)。但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:
(1)在“//**1******found****”的下方是构造函数的定义,它用参数提供的坐标对x和y进行初始化。
(2)在“//**2******found****”的下方是减法运 算符函数定义中的一条语句。两个二维向量相减生成另一个二维向量:其x坐标等于两向量X坐标之差,其Y坐标等于两向量Y坐标之差。
(3)在“//**3*******found****”的下方,语句的功能是使变量υ3获得新值,它等于向量υ1与向量υ2之和。
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“****found****”。
//proj3.cpp
#include
usingstd::ostream;
usingstd::cout;
usingstd::end1;
claSSMyVector{//表示二维向量的类
doublex;//x坐标值
doubley;//y坐标值
public:
MyVector(doublei=0.0,double;0.0);//构造函数
MyVectoroperator+(MyVectorj);
//重载运算符+
friendMyVectoroperator-(MyVectori,MyVectorj);//重载运算符-
friendostream&operator<<(
ostream&os,MyVectorv);//重载运算符<<
},
//**1************found**********
________(doublei,doublej):x(i),
y(j){)
MyVectorMyVector::operator+(MyVectorj){
returnMyVector(X+j.X,Y+j.Y);
}
MyVectoroperator-(MyVectori,
MyVectorj)
{//**2************found**********
returnMyVector(________);
}
ostream&operator<<(ostream&os,MyVectorV){
OS<<’(’<//输出向量v的坐标
returnos;
}
intmain()
{
MyVectorv1(2,3),v2(4,5),v3;
//**3************found**********
v3=________;
cout<return0;
}

选项

答案(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://kaotiyun.com/show/mR0D777K
0

最新回复(0)