我正在创建一个用于基本向量操作的向量类,并尝试决定哪个[点积或叉积]最适合重载*
和*=
运算符,希望得到其他人的意见。
到目前为止,我已经实现了+
,+=
,-
和-=
运算符。
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&
?你的想法是什么?
std::vector
,但是考虑到我以后会用这个类做什么,我决定使用一个Vector
类是最好的选择。不过还是谢谢你的建议! - user2958542mathvector::dot
应该返回一个标量。;-) - SO_fix_the_vote_sorting_bug