C++の疑似仮想関数とは何ですか?C++の疑似仮想関数とは何ですか?
答えて
AFAIK公式の定義でどこにでも現れる用語ではありません。
おそらく誰かがsimulated dynamic bindingについて話していますか?
編集:迅速なウェブ検索では、誰かが独自の動的多型を実装している可能性があるので、独自のvtableを持っている可能性があります。 「疑似仮想」関数は、C++コンパイラが実際に仮想関数を理解するのではなく、実際には仮想関数ではなく、そのメカニズムを介して関数にアクセスすることになります。
これを行う理由の1つは、multi-dispatchを実装することです。
私たちを指す文脈がありますか?
はい、シミュレートされた動的バインディングに関連しているようです。このコンテキストは、3Dエンジン上でマルチスレッドのアニメーションとメッシュモーファーシステムを最適化するメカニズムであるため、理にかなっています。どうもありがとう。 –
宣言を伴う仮想関数です。
class Foo
{
int* bar;
Foo() : bar(0) { bar = new int; }
virtual ~Foo() { delete bar; }
}
これは、宣言で何かを実行するため、疑似バーチャルデストラクタを持ちます。
class Foo
{
Foo() { }
virtual ~Foo()=0;
}
少なくとも、これは私がそれを学んだ方法です。
(*multiMethod[ index ])()
multiMethod配列:
私は(これらは、通常、セレクタは、実行時にコードによって決定されたオフセット関数ポインタのアレイを使用して実装されているC++で)マルチメソッドを参照するために使用する用語を聞きました関数ポインタの配列です。
私はこの言葉を聞いたことがありません。私は彼らがNon-Virtual Interface idiom (NVI)について話していると思います。あるいは、関数ポインタのディスパッチテーブルを作成することについて話しています。これは、Cで多態性/仮想関数を実装する方法です(実際はC++コンパイラがその背後で)。
質問を読んだとき、NVIが私の心に来た最初のものです.... – Dan
- 1. C++仮想関数とスレッド
- 2. 仮想基本クラスから継承する仮想関数の「仮想サンク」とは何ですか?
- 3. C++の仮想関数に相当するRustとは何ですか?
- 4. 仮想関数のリンカエラーC++
- 5. CSSで「疑似」とは何ですか?
- 6. C++では、仮想関数をオーバーライドすると自動的に仮想関数ですか?
- 7. CSS疑似セレクタとは何ですか?
- 8. 疑似セレクタ ":regular"とは何ですか?
- 9. C++仮想キーワードと関数のオーバーライド
- 10. C++(仮想)関数テーブル
- 11. 仮想関数オーバーライド仮想関数
- 12. C++:非仮想関数で純粋仮想関数を使用する
- 13. 仮想マシンと仮想デスクトップの違いは何ですか?
- 14. C++多態性と非仮想関数
- 15. はCefRequesthandlerクラスの仮想関数C++
- 16. 仮想関数は
- 17. themidia仮想C++ DLL関数は、名前
- 18. 本当に仮想関数は何ですか?
- 19. 仮想関数
- 20. C++の仮想関数の概念
- 21. 仮想関数を使用するC++
- 22. C++仮想関数の単純な例
- 23. 仮想関数のないコマンドパターン(C++)
- 24. 仮想関数コンパイラの最適化C++
- 25. 継承クラスのC++仮想関数
- 26. C++仮想関数の問題が
- 27. C++仮想関数の実装?
- 28. C++仮想関数の出力
- 29. 仮想テンプレート関数の偽装C++
- 30. C++仮想関数テーブルの取得インデックス
コンテキストは、3Dエンジン上でマルチスレッドアニメーションとメッシュモーファーシステムを最適化するメカニズムです。 –