logo

Struktury C++

V C++ jsou třídy a struktury plány, které se používají k vytvoření instance třídy. Struktury se používají pro lehké objekty, jako je obdélník, barva, bod atd.

Na rozdíl od třídy jsou struktury v C++ hodnotovým typem než referenčním typem. Je to užitečné, pokud máte data, která nejsou určena k úpravě po vytvoření struktury.

je bílkovinný tuk

Struktura C++ je soubor různých typů dat. Je podobná třídě, která obsahuje různé typy dat.

Syntaxe struktury

 struct structure_name { // member declarations. } 

Ve výše uvedené deklaraci je struktura deklarována předřazením klíčové slovo struct následovaný identifikátorem (název struktury). Uvnitř složených závorek můžeme deklarovat členské proměnné různých typů. Zvažte následující situaci:

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

Ve výše uvedeném případě je Student strukturou obsahující tři proměnné name, id a age. Když je struktura deklarována, není přidělena žádná paměť. Když je vytvořena proměnná struktury, je alokována paměť. Pojďme pochopit tento scénář.

Jak vytvořit instanci Structure?

Strukturní proměnnou lze definovat jako:

Student s;

pole slicing java

Zde s je strukturní proměnná typu Student . Když je vytvořena proměnná struktury, bude alokována paměť. Studentská struktura obsahuje jednu char proměnnou a dvě celočíselné proměnné. Paměť pro jednu proměnnou char je tedy 1 bajt a dva inty budou 2*4 = 8. Celková paměť obsazená proměnnou s je 9 bajtů.

Jak získat přístup k proměnné Struktura:

K proměnné struktury lze přistupovat jednoduše pomocí instance struktury následované operátorem tečka (.) a poté polem struktury.

Například:

java srovnatelná
 s.id = 4; 

Ve výše uvedeném příkazu přistupujeme k poli id ​​struktury Student pomocí tečka(.) operátor a přiřadí hodnotu 4 do pole id.

Příklad struktury C++

Podívejme se na jednoduchý příklad struktury Rectangle, která má dva datové členy šířku a výšku.

 #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>

Příklad struktury C++: Použití konstruktoru a metody

Podívejme se na další příklad struct, kde používáme konstruktor k inicializaci dat a metodu pro výpočet plochy obdélníku.

 #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>

Struktura v/s Třída

Struktura Třída
Pokud není specifikátor přístupu deklarován explicitně, bude standardně specifikátor přístupu veřejný. Pokud není specifikátor přístupu deklarován explicitně, bude standardně specifikátor přístupu soukromý.
Syntaxe struktury:

struct název_struktury
{
// tělo struktury.
}
Syntaxe třídy:

třída název_třídy
{
// tělo třídy.
}
Instance struktury je známá jako 'Structure variable'. Instance třídy je známá jako 'Object of the class'.