c++练习题----二维向量相加(C++ 运算符重载)

    技术2025-01-19  13

    6-4 二维向量相加(C++ 运算符重载) (10分)

    裁判测试程序样例中展示的是一段二维向量类TDVector的定义以及二维向量求和的代码,其中缺失了部分代码,请补充完整,以保证测试程序正常运行。

    函数接口定义:

    提示:需要补充的函数有: 1. 带参构造函数 2. getX 3. getY 4. setX 5. setY 6. 运算符重载函数

    裁判测试程序样例:

    #include <iostream> #include <iomanip> using namespace std; class TDVector{ private: double x; double y; public: TDVector(){ x = y = 0; } /** 你提交的代码将被嵌在这里(替换本行内容) **/ }; int main(){ TDVector a; double x, y; cin >> x >> y; TDVector b(x, y); cin >> x >> y; TDVector c; c.setX(x); c.setY(y); TDVector d; d = a + b + c; cout << fixed << setprecision(2) << d.getX() << ' ' << d.getY(); return 0; }

    输入样例:

    1.1 2.2 3.3 4.4

    输出样例:

    4.40 6.60

    代码实现:

    #include <iostream> #include <iomanip> using namespace std; class TDVector{ private: double x; double y; public: TDVector(){ x = y = 0; } /** 你提交的代码将被嵌在这里(替换本行内容) **/ TDVector(double x_,double y_):x(x_),y(y_) { } double getX() { return x; } double getY() { return y; } void setX(double a) { x=a; } void setY(double b) { y=b; } TDVector operator +( TDVector c) { this->x=this->x+c.x; this->y=this->y+c.y; return *this; } }; int main(){ TDVector a; double x, y; cin >> x >> y; TDVector b(x, y); cin >> x >> y; TDVector c; c.setX(x); c.setY(y); TDVector d; d = a + b + c; cout << fixed << setprecision(2) << d.getX() << ' ' << d.getY(); return 0; }

     

     

     

     

    Processed: 0.008, SQL: 9