错误:LNK2019未解析模板功能中的外部符号“public”

时间:2011-05-08 09:33:39

标签: c++

我有一个类可以在窗口中移动,着色,设置文本......等任何GUI:

class BasicOption
{
public : 
template <class T>
void SetPosition ( float x , float y , T const*Obj);
};

并定义如下函数:

template <class T>
void BasicOption::SetPosition ( float x , float y , T const*Obj)
{
this->Obj->SetPosition(x ,y );
}

我有课程来创建像这样的窗口

class GUI_Window : public BasicOption

{
public:   // <-- This colon was added in response to some answers
GUI_Window(float const&width , float const&height String const&name)
};

确定每件事情都能正常工作,但如果我在主函数中调用SetPosition,我会得到

error: LNK2019 unresolved external symbol "public" 

的main.cpp

GUI_Window *W ; // MyWindow
int WINAPI wWinMain ( HINSTANCE hInst , HINSTANCE hPrev , LPWSTR lmcmdline , int nShowCmd )
{
..............
...........
..........
...........

W->SetPosition ( 520 , 250 , W );


}

我也改变了这样的代码

{
W->SetPosition <GUI_Window>( 520 , 250 , W );
}

但仍有同样的问题

/ ** /

伙计们我找到了问题

它是链接,我在main.cpp中定义了函数,它工作正常 但如果我在main.cpp文件之外定义它我会得到错误播种链接此功能的任何帮助 并在main.cpp

之外定义它

2 个答案:

答案 0 :(得分:2)

public:而不是public - 而且你错过了一个分号。

class GUI_Window : public BasicOption

{
public:
    GUI_Window(float const&width , float const&height String const&name);
};

答案 1 :(得分:0)

之前从未见过该错误消息,但您在

中缺少冒号
public
    GUI_window(...