7

C ++標準は、クラスと構造体のコンパイルレイアウトを指示しますか?特に空の場合、どのように異なる方法でコンパイルされますか?

4

1 に答える 1

13

ある意味では、基本クラス(Empty Base Class Optimizationとして知られている)として使用される場合を除いて、スペースを割り当てる必要があると言っています。これは、異なるオブジェクトが異なるアドレスを持つことを保証するためです。

それらは、デフォルトのアクセス指定子を除いて、同じようにコンパイルされ、同じものですstructC ++ 11ではclass標準レイアウトのクラス/構造体の概念が導入され、空のクラスのメモリレイアウトが同じになることが保証されます。

于 2012-06-04T20:51:05.090 に答える