我有一個類移動,上色,設置文本...等任何GUI在窗口:錯誤:模板函數LNK2019解析的外部符號「公用」
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外定義它
冒號我改變的代碼,但我有同樣的probleme – user722528 2011-05-08 11:08:13
你應該標記,你在改變了代碼的地方問題,否則下一個來這裏的人會非常惱火! – 2011-05-08 11:15:14
模板應該內聯定義,而不是在單獨的文件中。 – 2011-05-08 12:55:27