如何在我的類模板中使用靜態函數指針成員?類模板中的靜態函數指針成員
我在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