我想提出一个包含将进一步推导分为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值的函数对于每种类型的向量都是相同的。 有没有办法将这个最小化到基类本身? 或者是否有更好的方法在相同的空间中添加矢量并将它们转换为不同的空间?
如果在不同空间中的矢量被操作,该怎么办? –
我想对仅位于同一空间的矢量执行操作。如果他们躺在不同的空间,那么我打算使用转换比率来转换它们。 –