簡體   English   中英

類模板中的靜態函數指針成員

[英]Static function pointer member in a class template

如何在類模板中使用靜態函數指針成員?

我正在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,“不能是模板定義”。

有任何想法嗎?

更改*的位置,以便

template<typename T>
T* (*ClassTemplate<T>::mFunctionPointer)() = NULL;

否則,您嘗試將名稱空間級別的變量mFunctionPointer定義為指向mFunctionPointer的成員的ClassTemplate

將您的定義轉換為此:

template<typename T>
T* (*ClassTemplate<T>::mFunctionPointer)() = NULL;

*應該出現在標識符之前(包括類范圍解析)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM