33

最近、初めての C++ リンカ エラーに遭遇しました。

libfoo.so: undefined reference to `VTT for Foo'
libfoo.so: undefined reference to `vtable for Foo'

エラーを認識して問題を修正しましたが、まだしつこい質問があります: VTT とは正確には何ですか?

余談ですが、興味のある方のために説明すると、クラスで宣言された最初の仮想関数を定義し忘れた場合に問題が発生します。vtable は、クラスの最初の仮想関数のコンパイル ユニットに入ります。その関数を定義するのを忘れると、開発者にとってはるかに使いやすい関数が関数を見つけられないのではなく、vtable が見つからないというリンカ エラーが発生します。

4

2 に答える 2