从子类构造函数中继承模板时,必须在调用父构造函数时指定模板参数。 代码示例:
template<typename TYPE>
class Association
{
public:
Association(TYPE* object) : m_object(object) {}
private:
TYPE* m_object;
};
class MyClass
{
};
class AssociationToMyClass : public Association<MyClass>
{
// is the constructor correct
AssociationToMyClass(MyClass* object) : Association<MyClass>(object) {}
// or this one?
AssociationToMyClass(MyClass* object) : Association(object) {}
};
答案 0 :(得分:2)
两者都是正确的。 Association<MyClass>
更明确,但有一个“注入的类名称”可用于名称查找,其中Association
表示与Association<MyClass>
相同。