2017-01-30 63 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>