考虑以下类模板:
template <class T>
class MyClass
{
void MyFunc();
};
template <class T>
void MyClass<T>::MyFunc()
{
//...implementation goes here
}
我需要添加另一个函数模板 MyFunc2
它接受模板参数 T2
即,
template <class T>
class MyClass
{
void MyFunc();
template <class T2>
static void MyFunc2(T2* data);
};
template <class T>
void MyClass<T>::MyFunc()
{
//...implementation goes here
}
template <class T, class T2>
void MyClass<T>::MyFunc2(T2* pData) // error here
{
//...implementation goes here
}
我正在使用 VS 2008 编译器。我收到错误消息:
错误 C2244:无法将函数定义与现有声明匹配
在这种情况下,函数的定义和声明应该是什么样子?
原文由 SysAdmin 发布,翻译遵循 CC BY-SA 4.0 许可协议