一千萬個為什麽

搜索

鏈接器錯誤 - 未解析的外部符號

你好。我正在為我的班級進行C ++作業。我差不多完成但似乎無法弄清楚這些錯誤:

error LNK2001: unresolved external symbol "public: virtual void __thiscall HasQuarterState::dispense(void)const " ([email protected]@@UBEXXZ) gumball.obj Gumball
error LNK2001: unresolved external symbol "public: virtual void __thiscall SoldState::turnCrank(void)const " ([email protected]@@UBEXXZ) gumball.obj Gumball
fatal error LNK1120: 2 unresolved externals C:\School Work\CS 492\Gumball\Debug\Gumball.exe Gumball

我去了MSDN並查找了LNK2001錯誤,但是提供了大量的信息,我擔心由於我在查看MSDN頁面時對C ++的經驗有限,我無法弄清楚出了什麽問題。

但我確實認為問題來自於我構建程序的方式。我的老師說我們也可以使用一個.cpp文件,但我想最終我對Visual Studios/C ++的了解還不夠。最後,我遇到了一些我必須解決的問題,這些問題來自於使用一個.cpp文件。

The code/file in question is here: http://codepad.org/LpBeJT2Y

這是一個很大的混亂,但這就是我所做的:

  • 聲明一個名為GumballMachine(無定義)的類
  • 定義一個名為State的類(後者又有一個指向GumballMachine的指針)
  • 定義了幾個繼承自State
  • 的其他州類
  • 定義班級GumballMachine
  • 定義了幾個從其他狀態類的原始定義中排除的函數。這是因為這些函數依賴於GumbballMachine的已定義函數,並且在定義GumballMachine函數之前無法工作。
  • void main()

據我所知(由於我對VS/C ++的了解有限),代碼看起來很好。也許有些經驗豐富的人會抓住。有關如何解決這個問題的任何指示?

謝謝您的幫助。

最佳答案

您已經在HasQuarterState中聲明了分配,但尚未對其進行定義。該功能沒有身體。與SoldState中的turnCrank一樣。

轉載註明原文: 鏈接器錯誤 - 未解析的外部符號