2017-01-30 43 views
-1

你好,我正在嘗試創建一個靜態方法來檢查虛幻引擎中的空指針。通用靜態方法

.h文件中

template<typename T> 
    static bool checkForNull(T pointer); 

.cpp文件

bool MyClass::checkForNull(T pointer) 
{ 
    { 
     if (!pointer) { 
      printlog(FString("Your pointer is null")); //Another static function for printing 
      return false; 
     } 
     else { 
      return true; 
     } 
    } 
} 

但我也有新的C++和我認爲這是一個語法錯誤在我的代碼?我如何創建一個靜態泛型方法?

+1

如果出現語法錯誤,則會顯示一條錯誤消息,我們很樂意閱讀。 – Downvoter

+0

尋求調試幫助的問題('**爲​​什麼不是這個代碼工作?**')必須包含所需的行爲,特定的問題或錯誤以及在問題本身**中重現**所需的最短代碼。沒有**明確問題陳述**的問題對其他讀者沒有用處。請參閱:[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – Biffen

+2

改用'T *'參數來強制要傳遞的指針,而不是任意的對象。 – Downvoter

回答

1

問題是,您必須將您的模板方法的代碼放在頭文件中,以便在包含頭文件以實例化模板時,編譯器將能夠從模板構建相應的代碼。在定義之前,您還必須重複template <class T>