討論
私が知っているすべての実装 (つまり、C++ コンパイラ) は、仮想ディスパッチ テーブルと仮想テーブル ポインター(つまり、既知のと) を使用して動的ディスパッチメカニズムを実装していることを認識しています。vtable
vptr
しかし、C++ 標準を調べると、C++ 標準では動的ディスパッチの実装方法が正確に規定されていないことがわかりました。これは、その動作が動的ディスパッチ動作に対する C++ 標準の要求に準拠していれば、ベンダーは動的ディスパッチに別の方法を使用できることを意味します。
質問
Q1.
vtable
s とvptr
s 以外に、動的ディスパッチを実装できる有効なメソッドはありますか?Q2. Q1が true の場合:実装者が動的ディスパッチを実装するために、他の有効なメソッドの代わりに
vtable
s およびsを使用することを決定した理由は何ですか?vptr