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<<'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'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<<'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 'Structure variable'. </td> <td>The instance of the class is known as 'Object of the class'.</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<<\'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 'Structure variable'. </td> <td>The instance of the class is known as 'Object of the class'.</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'. |