2012-01-04 9 views
0

クラスのインスタンスを作成し、共有メモリに配置して、同じインスタンスを複数のプロセスから呼び出すことができます。しかし、このクラスには、マップされたデータにポインタを含めることができないという問題を引き起こす可能性がある仮想メソッドがあります。ポインタはこのクラスのvtableの場合のようになります。それは働くでしょうか?仮想メソッドを含むクラスでCreateFileMapping

+1

短い答え:いいえ長い答え:Noooooooo。 –

+0

fair nuf。質問は終了しました。 – user380689

答えて

0

Kerrek SBがコメントしたように、仮想メソッドを含むクラスをマップすることはできません。しかし、おそらく単純な構造体やクラスを仮想なしで作成し、マップしてから、仮想を持つ別のクラスへのポインタを渡して実装としてプレーン構造体を使用することができます。基本的にPimpl idiomです。

必要に応じて、プレーン構造体に「型」整数を格納し、それを調べて呼び出す関数を決定することによって、仮想ディスパッチのようなことを自分で行うことさえできます。

関連する問題