2011-11-06 50 views

回答

2

代碼中沒有Book()。如果你正在談論Foo(),那麼你永遠不會在你的代碼中使用這個函數,所以鏈接器永遠不會被問到,並且會以「未定義的函數」或者類似的錯誤失敗。

7

沒有人試圖調用Foo,所以鏈接器不會抱怨缺少的實現,因爲它不是必需的。

如果你寫了virtual int Foo();,你會看到一個鏈接錯誤。

+0

爲什麼_ **虛擬** _會導致錯誤?什麼改變? – Emadpres

+1

@EmAdpres:請參閱http://stackoverflow.com/q/3560786/14065 –

+1

@EmAdpres:您需要在vtable中輸入一個條目。 –

相關問題