2

CppCon2019 の BackToBasics トーク: Virtual Dispatch and Its Alternatives を見ています。発表者は、派生クラスが基本クラスから vtable ポインターを継承し、さらに独自の vptr を持っていることをスライドに示します (誤解していないと仮定します)。

もちろん、技術的にはこれは標準で義務付けられているわけではありませんが、私は少し混乱しており、 sizeof() を使用した実験でも、ポインターが 1 つだけあればよいことが示されているようです。複数の vptrs が必要な状況があるかどうかを明確にしてください。

ありがとう

PS 明確にするために、このコンテキストでは、仮想または多重継承ではなく、より一般的なパブリック継承を検討しています (プレゼンターは、トークの前半でこれについて明示的に言及しています)。

4

2 に答える 2