从子类构造函数中的模板继承时,有必要在父构造函数的调用中指定模板参数。
代码示例:

    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) {}
};

最佳答案

两者都是正确的。 Association<MyClass>更明确,但是对于名称查找有一个“注入的类名”可见,其中Association的含义与Association<MyClass>相同。

10-06 07:18