所以我有這兩個重載操作符爲我的Vector類,點和跨產品,我假設你不能這樣做,我應該有一個交叉函數。有沒有辦法讓一個重載操作符的兩個副本返回不同的類型?
inline T operator *(const Vector3<T> &v)
{
return value[0]*v[0]+value[1]*v[1]+value[2]*v[2];
}
inline Vector3<T> operator *(const Vector3<T> &v)
{
Vector3<T> result;
result[0] = value[1]*v[2] - value[2]*v[1];
result[1] = value[2]*v[0] - value[0]*v[2];
result[2] = value[0]*v[1] - value[1]*v[0];
return result;
}
在這樣的機會中,有一種方法可以做到這一點很棒,它有可能嗎?
你到底想如何複製它們? – 0x499602D2
由於點積依賴於對稱雙線性形式的選擇以及Hodge星上的交叉乘積,所以我不會重載其中的任何一個,而是使操作明確。 –
http://stackoverflow.com/questions/9568852/overloading-by-return-type – alestanis