重複の可能性:
C++ 仮想関数テーブルのメモリ コスト
http://www.parashift.com/c++-faq-lite/virtual-functions.htmlを読んだだけで、仮想性によるメモリのオーバーヘッドはどうなるのだろうか。私は現在、スーパーコンピューター用に最適化されたコードを書いています。読み取り可能なコードとメモリ消費量の間で適切なバランスを見つける必要があります。
それがどのように機能するかを理解するために、次のクラスのメモリ オーバーヘッドはどうなるでしょうか。
class AbstractA {/* SOMETHING */};
class AbstractB {/* SOMETHING */};
class A : public AbstractA {/* SOMETHING */};
class B : public AbstractB {/* SOMETHING */};
class A2 : public A {/* SOMETHING */};
class B2 : public B {/* SOMETHING */};
class AbstractAB : public AbstractA, public AbstractB {/* SOMETHING */};
class AbstractAB2 : public AbstractAB {/* SOMETHING */};
各クラスに 10 億個のオブジェクトがあると仮定すると、非静的メモリの消費を気にする必要があります。では、オブジェクトの種類ごとにいくらになりますか? (AbstractA の各仮想メソッドが型 "A" の各オブジェクトのポインターを作成する場合、私は死ぬ...)