-4
私はsizeof(Derived);
が8
で、私のマシン上でこの仮想的に継承されたクラスのサイズがchar 8であるのはなぜですか?
class Empty {}; // Empty class
class Derived : virtual public Empty
{
char c;
};
を持って、なぜ?それにはchar
が1つしかないので、1
であるとは思われませんか?
仮想継承を削除すると、sizeof(Derived);
は1
になります。
コンパイラが実行します。質問を明確にすることはできますか? – Flexo
結果は何ですか?あなたは何を期待し、なぜですか?少なくともあなた自身でその質問を解決する努力を示してください! –
あなたは[documentation](http://en.cppreference.com/w/cpp/language/sizeof)をお読みになりましたか?不明な点は何ですか? – Default