2016-01-21 11 views
2

我有一个模板方法GetComponent模板方法但是运行的Visual Studio 2015年显示错误

class Entity 
{ 
public: 
    Entity(); 
    ~Entity(); 

    void AddComponent(Component* c); 

    template <typename T> 
    T* Entity::GetComponent() 
    { 
     return (T*)components.at(0); 
    } 
}; 

在main.cpp中

auto e = new Entity(); 
e->AddComponent(new Transform()); 
// later ... 
auto t = e->GetComponent<Transform>(); 

这将运行正常,但是Visual Studio的2015年是示值误差: 类“实体”没有成员“GetComponent”

我该怎么办?

回答

4

GetComponent()被定义在类内部,试图剥离Entity::

T* GetComponent() ... 
+0

事实上,因为它搬到我从CPP文件中的代码标头中的复制粘贴错误。 – rluks

相关问题