C++ 向量类实现:加减运算符重载
#include
class Vector { public: Vector(int n) : size(n) { data = new int[size]; for (int i = 0; i < size; i++) { data[i] = 0; } }
~Vector() {
delete[] data;
}
int operator[](int i) const {
return data[i];
}
int& operator[](int i) {
return data[i];
}
Vector operator+(const Vector& v) const {
Vector result(size);
for (int i = 0; i < size; i++) {
result[i] = data[i] + v[i];
}
return result;
}
Vector& operator+=(const Vector& v) {
for (int i = 0; i < size; i++) {
data[i] += v[i];
}
return *this;
}
Vector operator-(const Vector& v) const {
Vector result(size);
for (int i = 0; i < size; i++) {
result[i] = data[i] - v[i];
}
return result;
}
Vector& operator-=(const Vector& v) {
for (int i = 0; i < size; i++) {
data[i] -= v[i];
}
return *this;
}
private: int* data; int size; };
int main() { Vector v1(3); v1[0] = 1; v1[1] = 2; v1[2] = 3;
Vector v2(3);
v2[0] = 4;
v2[1] = 5;
v2[2] = 6;
Vector v3 = v1 + v2;
cout << v3[0] << ' ' << v3[1] << ' ' << v3[2] << endl;
v1 += v2;
cout << v1[0] << ' ' << v1[1] << ' ' << v1[2] << endl;
Vector v4 = v1 - v2;
cout << v4[0] << ' ' << v4[1] << ' ' << v4[2] << endl;
v1 -= v2;
cout << v1[0] << ' ' << v1[1] << ' ' << v1[2] << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/oX6K 著作权归作者所有。请勿转载和采集!