質問: 空のクラスのサイズとC ++の構造体とクラスの違いは何ですか? 空のクラスのサイズとC ++の構造体とクラスの違いは何ですか? 私の考え: 静的メンバーがない場合は、すべてのメンバーがスタックに割り当てられているため、同じメンバーになるはずです。 それらがすべて空であれば、同じです。 静的メンバーがある場合は、メンバー内の相対的な位置に依存します。 右 ? ありがとう
回答: C ++標準標準では、Emptyクラスのサイズは**非ゼロ**にする必要があります。 通常、ほとんどのシステムでは `1` バイトです。 In Bjarne Stroustrup's words, the size is non-zero "*To ensure that the addresses of two different objects will be different."* ほとんどのシステムでは、一意のアドレスを取得するためだけにシンボルテーブルにクラス名のエントリが作成されるため、配置ルールは重要ではないため、サイズは `1` です。 スタンダードファン: **C ++ 03標準セクション9:クラス、パラ2:** > クラス型の完全なオブジェクトとメンバサブオブジェクトは、サイズがゼロでないものとする。 > 94) > >