1

2 つのクラスがあり、2 番目のクラスは最初のクラスを継承します。基本クラスには仮想関数があり、派生クラスには仮想関数がありません。クラスの子の仮想関数のテーブルにあるもの。空ですか、まったく作成されていませんか?

class base
{
private:
int m_d;
public:
virtual void foo();
virtual void bar();
};

class derived : public base
{
int m_b;
void baz();
};
4

2 に答える 2

3

vtable は C++ コンパイラの実装の詳細であるため、標準的な答えはありません。各 vtable にそのすべてのベースの仮想関数の完全なセットが含まれていることは、間接を最小限に抑えることに関して理にかなっていますが、これも実装の詳細です。

于 2013-10-22T08:32:45.997 に答える