C++相談室 Part4
■ このスレッドは過去ログ倉庫に格納されています
0330デフォルトの名無しさん
NGNGあえて言えばデストラクタ?
っつか、たぶん求めてる答えは
仮想関数があると仮想関数へのポインタを格納した vtbl が作られ、各インスタンスには vtbl を指す
vptr が格納される。よって仮想関数なしの場合に比べると、インスタンスのサイズは増える。
仮想関数が無い場合には、メソッドはリンク時に静的に解決され、関数ポインタを介さずに直接呼び
出される。
という話のような気がする。>>322 のコードに限って言えば、デストラクタが仮想なので、すでに HOGE
のインスタンスには vptr が含まれることは確定。したがって foo() があってもなくても、仮想でも非仮想
でも HOGE のサイズには影響しない。
■ このスレッドは過去ログ倉庫に格納されています