为什么我不能将我的通用构造函数移动到.cpp文件中?

时间:2014-05-29 13:16:53

标签: .net generics c++-cli

如果我单独在头文件中执行此操作,则可以正常工作:

generic<typename T>
ref class MyGenericClass
{
protected:
    T m_someInternalInformation;

public:
    MyGenericClass(void)
    {

    }
};

...但如果我改变.h文件看起来像这样:

generic<typename T>
ref class MyGenericClass
{
protected:
    T m_someInternalInformation;

public:
    MyGenericClass();
};

...和这样的.cpp文件:

#include "MyGenericClass.h"

MyGenericClass::MyGenericClass(void)
{

}

我收到编译错误:

1>MyGenericClass.cpp(4): error C2955: 'MyGenericClass' : use of class generic requires generic argument list

我尝试添加有关构造函数定义的通用定义:

#include "MyGenericClass.h"

generic<typename T>
MyGenericClass::MyGenericClass(void)
{

}

...但我得到了同样的错误。我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

找到答案:

generic<typename T>
MyGenericClass<T>::MyGenericClass(void)
{

}

请注意<T>之前的::