2009-08-21 19 views

答えて

4

AFAIK公式の定義でどこにでも現れる用語ではありません。

おそらく誰かがsimulated dynamic bindingについて話していますか?

編集:迅速なウェブ検索では、誰かが独自の動的多型を実装している可能性があるので、独自のvtableを持っている可能性があります。 「疑似仮想」関数は、C++コンパイラが実際に仮想関数を理解するのではなく、実際には仮想関数ではなく、そのメカニズムを介して関数にアクセスすることになります。

これを行う理由の1つは、multi-dispatchを実装することです。

私たちを指す文脈がありますか?

+0

はい、シミュレートされた動的バインディングに関連しているようです。このコンテキストは、3Dエンジン上でマルチスレッドのアニメーションとメッシュモーファーシステムを最適化するメカニズムであるため、理にかなっています。どうもありがとう。 –

0

宣言を伴う仮想関数です。

class Foo 
{ 
    int* bar; 

    Foo() : bar(0) { bar = new int; } 
    virtual ~Foo() { delete bar; } 
} 

これは、宣言で何かを実行するため、疑似バーチャルデストラクタを持ちます。

class Foo 
{ 
    Foo() { } 
    virtual ~Foo()=0; 
} 

少なくとも、これは私がそれを学んだ方法です。

(*multiMethod[ index ])() 

multiMethod配列:

+0

はい、私はそれを覚えてそこでそれを編集しました。 – jkeys

+0

おそらく**定義**を意味します。使用できるものには宣言があります。また、純粋な仮想関数を定義することもできます。 – Asik

+0

申し訳ありませんが、私はいつもプログラミング言語の記述に使用されている用語は完全に明白でなければならないことを忘れています。申し訳ありませんが、正式なトレーニングはありません(まだですか?)。 – jkeys

1

私は(これらは、通常、セレクタは、実行時にコードによって決定されたオフセット関数ポインタのアレイを使用して実装されているC++で)マルチメソッドを参照するために使用する用語を聞きました関数ポインタの配列です。

2

私はこの言葉を聞いたことがありません。私は彼らがNon-Virtual Interface idiom (NVI)について話していると思います。あるいは、関数ポインタのディスパッチテーブルを作成することについて話しています。これは、Cで多態性/仮想関数を実装する方法です(実際はC++コンパイラがその背後で)。

+0

質問を読んだとき、NVIが私の心に来た最初のものです.... – Dan

関連する問題