【发布时间】:2016-12-07 13:42:16
【问题描述】:
我重写了加法操作,这样我就可以添加我的 struct Vec3 的两个向量
// addition
Vec3 operator+(Vec3<T> &other) {
return Vec3(this->x + other.x, this->y + other.y, this->z + other.z);
}
// product with one scalar
Vec3 operator*(float scalar) {
return Vec3(this->x * scalar, this->y * scalar, this->z * scalar);
}
Vec3 只有 T 型的三个属性。
当使用它时,T 是一个浮点数,我执行这段代码:
vec temp = vecOne * skalarOne + vecTwo * scalarTwo;
我得到这个错误:
二元运算符“+”不能应用于类型表达式 'pray::Vec3' 和 'pray::Vec3'
如果先计算乘法并将结果保存在向量中,然后再进行向量加法,则不会出现此错误。
有人知道吗?谢谢!
【问题讨论】:
-
Vec3& 运算符+(..), Vec3& 运算符*(...)。应该有对 Vec3 的引用。