如何创建一个模板原型来声明要从接口继承的类?
我希望该类的所有特化都从同一个接口继承。
就像是:
template <typename T>
class A : public BaseInterface { }
template <>
class A<int> { } //somehow still inherit from the interface "BaseInterface"
如何创建一个模板原型来声明要从接口继承的类?
我希望该类的所有特化都从同一个接口继承。
就像是:
template <typename T>
class A : public BaseInterface { }
template <>
class A<int> { } //somehow still inherit from the interface "BaseInterface"
你不能。模板不是“类”。它们是“类模板”(此处的模板不是 C++ 术语,而是英语术语)。它们是构建实际类的骨架。所以当你说:
template <typename T>
class A : public BaseInterface { }
您实际上并没有声明一个类,而是为将要构建的某些类提供了规则。此外,当您专门化模板时
template <>
class A<int> { } //somehow still inherit from the interface "BaseInterface"
您明确表示您希望它针对此专业化表现不同。
您不能限制显式专业化。但它们可能源自 BaseInterface:
template <> class A<int>: public BaseInterface {...}