構造体とクラスの違い:C++ の例で説明
構造とは?
Structure は、float、char、int などの異なるデータ型の論理的に関連するデータ項目を結合するユーザー定義のデータ型です。
すべての構造要素は、連続したメモリ位置に格納されます。構造型変数は、さまざまなデータ型の複数のデータ項目を 1 つの名前で保存するのに役立ちます。
クラスとは?
クラスは、特定のタイプのオブジェクトを構築するための青写真または一連の指示です。これは、実生活のエンティティを中心に展開するオブジェクト指向プログラミングの基本概念です。プログラミング言語のクラスは、オブジェクトの動作方法とオブジェクトに含まれるものを決定します。
クラスは、本体内にさまざまな種類のデータ型とメンバー関数を持つことができるユーザー定義のデータ型でもあります。
C++ のクラスの構文
クラスの構文は次のとおりです:
class class-name { // data // functions };
上記の構文では、クラス名はクラスに割り当てられた名前です。データはクラスのメンバーで、通常は変数として宣言されます。ここの関数はクラス関数です。
C++ の構造体の構文
構造の構文は次のとおりです:
struct struct_name { // struct data members }
上記の構文では、struct キーワードが使用されています。 struct_name は構造体の名前です。構造体メンバーは中括弧内に追加されます。これらのメンバーは、おそらく異なるデータ型に属しています。
構造とクラスの違い
構造とクラスの主な違いは次のとおりです:
どちらを選ぶべきですか?
メモリ フットプリントが大きい場合や、継承などの概念を使用したい場合は、クラスを選択できます。一方、デフォルト値の初期化に必要なメモリ フィールドまたはフットプリントが小さい場合は、構造体を使用できます。
主な違い
- 構造は、さまざまなデータ型の論理的に関連するデータ項目を組み合わせたユーザー定義のデータ型です。一方、クラスは、特定の型のオブジェクトを構築するための青写真または一連の指示です。
- 構造は値型のデータ型ですが、クラスは参照型のデータ型です。
- 構造体のデフォルト コンストラクターは変更できませんが、クラスのデフォルト コンストラクターは変更できます。
- 構造体はデストラクタを持つことができませんが、クラスはデストラクタを持つことができます。
- クラスは小さなプログラムで使用され、構造は大きなプログラムで使用されます。
- 構造では、すべての値の型がスタックに割り当てられますが、クラスでは、すべての値の型がヒープに割り当てられます。
- 「構造」のインスタンスは「構造変数」と呼ばれ、「クラス」のインスタンスは「オブジェクト」と呼ばれます。
- 構造メンバー変数は直接開始できませんが、クラス メンバー変数は直接開始できます。
C言語