给定以下类:
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正确的基类功能?