A-A+

使用VC6打开考生文件夹下的工程test40_3。此工程包含一个test40_3.cpp 其

2022-08-05 20:55:26 问答库 阅读 172 次

问题详情

使用VC6打开考生文件夹下的工程test40_3。此工程包含一个test40_3.cpp,其中定义了类CVector,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)完成类CVector构造函数的定义,把传入的int型参数a和b分别赋值给类的成员变量x和y。请在注释“//**1**”之后添加适当的语句。
(2)完成类CVector的“+”运算符重载函数的定义,使Cvector类的两个对象相加时可以直接使用符号“+”,并且结果仍然为类Cvector的对象,请在注释“//**2**”之后添加适当的语句。
(3)在主函数中添加适当的语句,把类Cvector的对象a和b相加,并且把结果保存在对象c中,最后以“x,y”的形式输出在屏幕上,请在注释“//**3**”之后添加适当的语句。
源程序文件test40_3.cpp清单如下:
include <iostream.h>
class CVector
{
public:
int x,y;
CVector () {};
CVector (int,int);
CVector operator + (CVector);
};
CVector::CVector (int a, int b)
{
//**1**
}
CVector CVector::operator+ (CVector param)
{
//**2**
temp.y = y + param.y;
return (temp);
}
int main ()
{
CVector a (3,1);
CVector b (1,2);
CVector c;
//**3**
return 0;
}请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:(1)x=a;y=b;(2)CVector temp;temp.x=x+param.x;(3)c=a+b;tout<<c.x<<""<<c.y;
(1)x=a;y=b;(2)CVector temp;temp.x=x+param.x;(3)c=a+b;tout<<c.x<<","<<c.y; 解析:主要考查考生对于类的数据成员赋值与定义重载为成员函数的运算符函数的掌握,其中(2)就是运算符函数的实现,实际上就是通过已有的函数和符号实现复杂的运算功能,并最终返回该类的对象,注意最后的返回值必须是对象才能满足要求,(4)中使用对象调用类的数据成员用符号“.”。

考点:工程,文件夹