私は古い静的ライブラリ(クラス実装)を持っていますが、クラス内の仮想関数以外の仮想関数をライブラリに再コンパイルする必要がありますか?非仮想関数が仮想関数に変更されたときにクラスの実装を再コンパイルする必要がありますか?
0
A
答えて
2
@jesper の回答に少し理由を追加しました。vtableに新しい仮想関数ごとに新しいエントリが追加されるようになりました。再コンパイルが必要です。
+0
*これはすべての呼び出しがVFT経由で行われるためです。 – EJP
+0
はい! VFTは、このクラスのオブジェクトを呼び出すたびに参照されます。 –
4
はい。 は、ライブラリとアプリケーションを再コンパイルする必要があります。
関連する問題
- 1. 仮想関数の実装
- 2. 仮想関数が派生クラス内で非仮想宣言された
- 3. 仮想関数オーバーライド仮想関数
- 4. 非仮想オーバーロードされたメンバ関数
- 5. すべての仮想関数は派生クラスで実装する必要がありますか?
- 6. クラスに仮想関数がある場合、暗黙的に生成されたデストラクタも仮想ですか?
- 7. C++仮想関数の実装?
- 8. C++:非仮想関数で純粋仮想関数を使用する
- 9. 仮想関数
- 10. 動的ディスパッチ実装 - 仮想関数テーブルオフセット
- 11. 仮想メンバー関数の必要性
- 12. 仮想関数は、基本クラスの同じ名前の非仮想関数をオーバーライドしますか?
- 13. 非void戻り型の仮想関数
- 14. 仮想基本クラスから継承する仮想関数の「仮想サンク」とは何ですか?
- 15. C++:孫クラスには、子クラスと親クラスの仮想関数の実装がありません。
- 16. プライベート仮想関数
- 17. 仮想関数は
- 18. 非同期programmicと仮想関数
- 19. C++多態性と非仮想関数
- 20. 仮想関数const vs仮想関数non-const
- 21. 仮想関数内の基底クラスを変更する
- 22. すべての関数を基本クラスに仮想宣言する必要がありますか?
- 23. 派生クラスの純粋仮想関数を他の純粋仮想関数として実装するにはどうすればよいですか?
- 24. C++仮想関数とスレッド
- 25. 仮想関数と迂回
- 26. 継承と仮想関数
- 27. 仮想テンプレート関数の偽装C++
- 28. 抽象関数と仮想関数
- 29. 仮想デストラクタをデフォルトにする必要がありますか?
- 30. 親クラスの親の仮想関数
vtableレイアウトが影響を受けるため、[タグ:vtable]が追加されました。 – curiousguy