1. 程式人生 > >類似undefined reference to `vtable for `問題解決

類似undefined reference to `vtable for `問題解決

問題現象

今天編寫程式碼,編譯的時候遇到了類似“undefined reference to vtable for <classname>” 的問題 ,網上查了好久都說是基類的解構函式沒有實現,但我的程式碼中基類的解構函式是有實現的,後來又反覆檢視程式碼,發現基類中有個一普通的虛擬函式沒有實現(太大意了),將這個沒有具體實現的虛擬函式實現或將其定義為純虛擬函式,問題得到解決。

解決辦法

按一下幾點排查基類:

  1. 基類的解構函式應定義為虛擬函式(或純虛擬函式),且基類的解構函式一定要有實現(無論其被定義為虛擬函式還是純虛擬函式)
  2. 基類中的非純虛擬函式都需要有實現。