<分区>
我正在为基本 vector 运算创建一个 vector 类,并试图决定哪个 [点积或叉积] 最适合重载 *
和 *=
运算符并愿意了解其他人的想法。
到目前为止,我有 +
, +=
, -
, 和 -=
如此实现。
template<typename T>
Vector<T> Vector<T>::operator+(const Vector<T>& rhs) {
Vector<T> result(*this);
result += rhs;
return result;
}
template<typename T>
Vector<T>& Vector<T>::operator+=(const Vector<T>& rhs) {
for (int i = 0; i < this->size; i++)
this->vector[i] += rhs[i];
return *this;
}
template<typename T>
Vector<T> Vector<T>::operator-(const Vector<T>& rhs) {
Vector<T> result(*this);
result -= rhs;
return result;
}
template<typename T>
Vector<T>& Vector<T>::operator-=(const Vector<T>& rhs) {
for (int i = 0; i < this->size; i++)
this->vector[i] -= rhs[i];
return *this;
}
继续回归的趋势Vector<T>
*
应该使用叉积吗?和 *=
运算符重载或返回 T&
使用点积。
你有什么想法?