如何在我的类模板中使用静态函数指针成员?类模板中的静态函数指针成员
我在Visual Studio C++的工作,和我的代码看起来类似于以下内容:
template<typename T>
class ClassTemplate
{
public:
static T* CallIt() { return ClassTemplate<T>::mFunctionPointer(); }
private:
static T* (*mFunctionPointer)();
};
当我编译我得到一个“无法解析的外部符号”错误。我想我应该做这样的事情外的类声明:
template<typename T>
T* (ClassTemplate<T>::*mFunctionPointer)() = NULL;
不幸的是后来我拿到C2998,“不能是模板定义”。
任何想法?
这不是说这可以解决你的编译器错误,但要记住,模板+头文件混合不好。您必须在您使用该模板的每个翻译单元中包含该实施。 – 2010-08-09 21:00:15
感谢Merlyn,但我确实在我的标题中包含了所有内容。 – 2010-08-09 21:05:27