我想提出一個包含將進一步推導分爲3種類型,即
PVector(像素空間矢量)
MVector(表空間矢量)
RVector一個GVector類(表達空間矢量)虛擬操作符重載
class GVector {
public :
eVectorSpace eVS; // Defines which space the vector would be
float x,y; // The x and y values of a 2-Dimensional vector
...
GVector operator+ (const GVector& v) const { return GVector(x+v.x, y+v.y, v.eVS); }
...
};
class MVector {
public :
PVector toPVector() {...}
//Will contain functions to convert the same vector into a different space
};
我想使它可以添加2個載體趴在同一空間
MVector operator+ (const MVector& v) const { return MVector(x+v.x, y+v.y); }
我需要讓基類的功能類似 這個 ?
virtual GVector* operator+ (const GVector* v) const() = 0;
但我想返回一個矢量在相同的空間作爲兩個添加向量。
添加x,y值的函數對於每種類型的向量都是相同的。 有沒有辦法將這個最小化到基類本身? 或者是否有更好的方法在相同的空間中添加矢量並將它們轉換爲不同的空間?
如果在不同空間中的矢量被操作,該怎麼辦? –
我想對僅位於同一空間的矢量執行操作。如果他們躺在不同的空間,那麼我打算使用轉換比率來轉換它們。 –