我有以下课程:
template<typename T>
class Vector { ... };
template<typename T>
class Vector2 : public Vector<T> { ... };
现在,我希望能够将 Vector 转换为 Vector2 - 即使对象不是真正的 Vector2- (我的意思是,dynamic_cast 不是我想要的)
我应该实施什么?
- Vector 上的强制转换运算符
operator Vector2 ()
- Vector2 上的构造函数
Vector2(const Vector<T> &)
- 两个都
如果我应该同时实现这两个,什么时候会转换操作符,什么时候调用构造函数?