logo

C++ 構造体

C++ では、クラスと構造体は、クラスのインスタンスを作成するために使用される設計図です。構造体は、Rectangle、color、Point などの軽量オブジェクトに使用されます。

クラスとは異なり、C++ の構造体は参照型ではなく値型です。構造体の作成後に変更する予定のないデータがある場合に便利です。

イテレータJavaマップ

C++ の構造 さまざまなデータ型のコレクションです。これは、さまざまな種類のデータを保持するクラスに似ています。

構造の構文

 struct structure_name { // member declarations. } 

上記の宣言では、構造体は、 構造体のキーワード その後に識別子(構造名)が続きます。中括弧内で、さまざまな型のメンバー変数を宣言できます。 次の状況を考えてみましょう。

 struct Student { char name[20]; int id; int age; } 

上記の場合、Student は 3 つの変数 name、id、age を含む構造体です。構造体が宣言されると、メモリは割り当てられません。構造体の変数が作成されると、メモリが割り当てられます。このシナリオを理解しましょう。

Structure のインスタンスを作成するにはどうすればよいですか?

構造体変数は次のように定義できます。

学生;

サニーデル

ここで、 s は次の型の構造体変数です。 学生 。構造体変数が作成されると、メモリが割り当てられます。 Student 構造体には 1 つの char 変数と 2 つの整数変数が含まれます。したがって、1 つの char 変数のメモリは 1 バイトで、2 つの int は 2*4 = 8 になります。s 変数が占有する合計メモリは 9 バイトです。

構造体の変数にアクセスする方法:

構造体の変数には、構造体のインスタンス、その後にドット (.) 演算子、続いて構造体のフィールドを使用するだけでアクセスできます。

例えば:

 s.id = 4; 

上記のステートメントでは、次のメソッドを使用して Student 構造体の id フィールドにアクセスしています。 ドット(。) 演算子を作成し、値 4 を id フィールドに割り当てます。

Javaのwhileループ

C++ 構造体の例

幅と高さの 2 つのデータ メンバーを持つ struct Rectangle の簡単な例を見てみましょう。

 #include using namespace std; struct Rectangle { int width, height; }; int main(void) { struct Rectangle rec; rec.width=8; rec.height=5; cout&lt;<'area of rectangle is: '<<(rec.width * rec.height)<<endl; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 40 </pre> <h2>C++ Struct Example: Using Constructor and Method</h2> <p>Let&apos;s see another example of struct where we are using the constructor to initialize data and method to calculate the area of rectangle.</p> <pre> #include using namespace std; struct Rectangle { int width, height; Rectangle(int w, int h) { width = w; height = h; } void areaOfRectangle() { cout&lt;<'area of rectangle is: '<<(width*height); } }; int main(void) { struct rec="Rectangle(4,6);" rec.areaofrectangle(); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 24 </pre> <p> <strong>Structure v/s Class</strong> </p> <table class="table"> <tr> <th>Structure</th> <th>Class</th> </tr> <tr> <td>If access specifier is not declared explicitly, then by default access specifier will be public. </td> <td>If access specifier is not declared explicitly, then by default access specifier will be private.</td> </tr> <tr> <td>Syntax of Structure: <br> <br> struct structure_name <br> { <br> // body of the structure. <br> }</td> <td>Syntax of Class: <br> <br> class class_name <br> { <br> // body of the class. <br> }</td> </tr> <tr> <td>The instance of the structure is known as &apos;Structure variable&apos;. </td> <td>The instance of the class is known as &apos;Object of the class&apos;.</td> </tr> </table></'area></pre></'area>

C++ 構造体の例: コンストラクターとメソッドの使用

コンストラクターを使用してデータを初期化し、メソッドを使用して四角形の面積を計算する構造体の別の例を見てみましょう。

 #include using namespace std; struct Rectangle { int width, height; Rectangle(int w, int h) { width = w; height = h; } void areaOfRectangle() { cout&lt;<\'area of rectangle is: \'<<(width*height); } }; int main(void) { struct rec="Rectangle(4,6);" rec.areaofrectangle(); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 24 </pre> <p> <strong>Structure v/s Class</strong> </p> <table class="table"> <tr> <th>Structure</th> <th>Class</th> </tr> <tr> <td>If access specifier is not declared explicitly, then by default access specifier will be public. </td> <td>If access specifier is not declared explicitly, then by default access specifier will be private.</td> </tr> <tr> <td>Syntax of Structure: <br> <br> struct structure_name <br> { <br> // body of the structure. <br> }</td> <td>Syntax of Class: <br> <br> class class_name <br> { <br> // body of the class. <br> }</td> </tr> <tr> <td>The instance of the structure is known as &apos;Structure variable&apos;. </td> <td>The instance of the class is known as &apos;Object of the class&apos;.</td> </tr> </table></\'area>

構造とクラス

構造 クラス
アクセス指定子が明示的に宣言されていない場合、デフォルトでアクセス指定子は public になります。 アクセス指定子が明示的に宣言されていない場合、デフォルトではアクセス指定子はプライベートになります。
構造の構文:

構造体の構造名
{
// 構造体の本体。
}
クラスの構文:

クラス クラス名
{
// クラスの本体。
}
構造体のインスタンスは「構造体変数」と呼ばれます。 クラスのインスタンスは「クラスのオブジェクト」と呼ばれます。