给定以下类:
template <typename DataType, size_t Dimensions>
class Vector : public std::array<DataType, Dimensions> {
//stuff
};
template <typename DataType>
class Vector2 : public Vector<DataType, 2> {
//2d specific stuff
};
template <typename DataType, size_t Dimensions>
class Line {
public:
Vector<DataType, Dimensions>& min();
Vector<DataType, Dimensions>& max();
private:
Vector<DataType, Dimensions> m_min;
Vector<DataType, Dimensions> m_max;
};
template <typename DataType>
class Line2 : public Line<DataType, 2> {
//2d specific stuff
};
最好的方法是什么min()
,max()
当调用 a 时Line2
,返回 aVector2&
而不是 a Vector&
?我可以提升m_min
和m_max
到Vector2
内部Line2
吗?或者以其他方式覆盖它们并且仍然具有Line
正确的基类功能?