1
所以我在C++被寫一個小數學庫和一個標量乘以一個載體,我得到了一些問題,當我嘗試執行此操作用括號結果乘以使用重載* C++中運算
Vect V2;
Vect V3;
float S;
Vect V1 = V2 + S * (V2 - V3);
打交道時
我在重載操作符*中獲得的Vect值是一個新的Vect對象,而不是操作的(V2 - V3)部分的結果。這是代碼的其他相關部分。如果我通過調試來跟蹤操作,那麼兩個重載操作符自己可以正確工作,但不能一個接一個地工作。
Vect.h
Vect &operator - (const Vect &inVect);
friend const Vect operator*(const float scale, const Vect &inVect);
Vect.cpp
Vect &Vect::operator - (const Vect &inVect)
{
return Vect (this->x - inVect.x,this->y - inVect.y,this->z - inVect.z, 1);
}
const Vect operator*(const float scale, const Vect &inVect)
{
Vect result;
result.x = InVect.x * scale;
result.z = InVect.y * scale;
result.y = InVect.z * scale;
result.w = 1;
return result;
}
我也重載+和=操作者和他們的工作按預期我遇到的唯一問題是上述的問題。
+1,打我給它。我應該學會打字速度更快。 – juanchopanza 2013-02-09 12:43:24
噢,我的天啊,我一直在研究它幾個小時,沒有注意到它......我真的需要休息一下......感謝很多伴侶,真的很有幫助。 – user2057043 2013-02-09 12:55:34
@ user2057043:**打開您的編譯器警告**!沒有人希望你發現那個小小的'&',但你的編譯器應該,並且可能有方法來報告它。 – 2013-02-09 16:16:20