复制
收藏
提问
简洁

用c++有一个向量类Vector,包括一个点的坐标位置x和y,设计两个友元函数,实现两个向量的加法和减法的运算

ea08bb83b
0秒前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

向量类Vector设计

  • 类定义:定义一个向量类Vector,包含私有成员变量x和y,以及构造函数和友元函数。
  • 友元函数:设计两个友元函数,分别实现向量的加法和减法运算。

向量类Vector实现

#include <iostream>
using namespace std;

class Vector {
private:
    double x, y;

public:
    // 构造函数
    Vector(double x = 0.0, double y = 0.0) : x(x), y(y) {}

    // 获取向量坐标
    double getX() const { return x; }
    double getY() const { return y; }

    // 友元函数声明
    friend Vector operator+(const Vector& a, const Vector& b);
    friend Vector operator-(const Vector& a, const Vector& b);
};

// 实现向量加法
Vector operator+(const Vector& a, const Vector& b) {
    return Vector(a.getX() + b.getX(), a.getY() + b.getY());
}

// 实现向量减法
Vector operator-(const Vector& a, const Vector& b) {
    return Vector(a.getX() - b.getX(), a.getY() - b.getY());
}

int main() {
    Vector v1(1.0, 2.0);
    Vector v2(3.0, 4.0);

    Vector v3 = v1 + v2; // 使用友元函数实现加法
    Vector v4 = v1 - v2; // 使用友元函数实现减法

    cout << "v3: (" << v3.getX() << ", " << v3.getY() << ")" << endl;
    cout << "v4: (" << v4.getX() << ", " << v4.getY() << ")" << endl;

    return 0;
}

要点说明

  • 构造函数:初始化向量坐标。
  • 友元函数:允许在类的外部访问私有成员,实现向量加法和减法。
  • main函数:测试向量加法和减法。458
你觉得结果怎么样?

以上内容由AI搜集生成,仅供参考

在线客服