复制
收藏
提问
简洁
用c++有一个向量类Vector,包括一个点的坐标位置x和y,设计两个友元函数,实现两个向量的加法和减法的运算
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;
}
要点说明
你觉得结果怎么样?