de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
 user1002288
user1002288
質問

空のクラスのサイズとC ++の構造体とクラスの違いは何ですか?

空のクラスのサイズとC ++の構造体とクラスの違いは何ですか?

私の考え:

静的メンバーがない場合は、すべてのメンバーがスタックに割り当てられているため、同じメンバーになるはずです。

それらがすべて空であれば、同じです。

静的メンバーがある場合は、メンバー内の相対的な位置に依存します。

右 ?

ありがとう

1 2011-10-27T18:56:57+00:00 2
 timrau
timrau
編集された質問 25日 9月 2012 в 5:00
プログラミング
class
struct
c++
size
unions
Anders K.
27日 10月 2011 в 7:02
2011-10-27T19:02:08+00:00
さらに
ソース
編集
#56791732

class == struct the only difference is that in a struct, all members i.e. ivars and methods are public by default.

静的メンバー、すなわち変数またはメソッドは、特定のインスタンスに属さないという意味でクラス/構造体の一部ではありません。サイズは含まれません。

union is not a class nor struct, Union is used to map a struct to a particular memory layout.

サイズを取得するにはインスタンス変数の sizeof()を実行するだけです。

2
0
Alok Save
27日 10月 2011 в 6:59
2011-10-27T18:59:41+00:00
さらに
ソース
編集
#56791731

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)



1
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Roxana Elizabeth CASTILLO Avalos
登録済み 6日前
2
Hideo Nakagawa
登録済み 1週間前
3
Sergiy Tytarenko
登録済み 1週間前
4
shoxrux azadov
登録済み 1週間前
5
Koreets Koreytsev
登録済み 1週間前
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属