A C++ nyelvben az osztályok és a struktúrák tervrajzok, amelyeket egy osztály példányának létrehozására használnak. A struktúrákat könnyű tárgyakhoz használják, például téglalaphoz, színhez, ponthoz stb.
Az osztálytól eltérően a C++ struktúrái érték típusúak, mint referencia típusúak. Akkor hasznos, ha olyan adatokkal rendelkezik, amelyeket nem kívánunk módosítani a struktúra létrehozása után.
a tigris és az oroszlán különbsége
C++ szerkezet különböző adattípusok gyűjteménye. Hasonló az osztályhoz, amely különböző típusú adatokat tartalmaz.
A struktúra szintaxisa
struct structure_name { // member declarations. }
A fenti deklarációban egy szerkezetet a következővel deklarálunk struct kulcsszó ezt követi az azonosító (struktúra neve). A göndör kapcsos zárójeleken belül deklarálhatjuk a különböző típusú tagváltozókat. Vegye figyelembe a következő helyzetet:
struct Student { char name[20]; int id; int age; }
A fenti esetben a Student egy olyan struktúra, amely három változót tartalmaz: name, id és age. A struktúra deklarálásakor nincs memória foglalva. Amikor egy struktúra változója létrejön, akkor a memória lefoglalásra kerül. Értsük meg ezt a forgatókönyvet.
Hogyan lehet létrehozni a Struktúra példányát?
A szerkezeti változó a következőképpen definiálható:
Diák s;
válogatás tuples python
Itt az s egy típusú szerkezeti változó Diák . A szerkezeti változó létrehozásakor a memória lefoglalásra kerül. A tanulói struktúra egy char változót és két egész változót tartalmaz. Ezért egy char változó memóriája 1 bájt, két int értéke pedig 2*4 = 8. Az s változó által elfoglalt teljes memória 9 bájt.
Hogyan lehet elérni a Struktúra változót:
A struktúra változója egyszerűen elérhető a struktúra példányának, majd a pont (.) operátornak, majd a struktúra mezőjének használatával.
parancs touch linuxban
Például:
s.id = 4;
A fenti utasításban a Student struktúra id mezőjét érjük el a pont(.) operátort, és a 4-es értéket rendeli az id mezőhöz.
C++ szerkezeti példa
Nézzünk egy egyszerű példát a struct Rectangle-re, amelynek két adattagja van, szélessége és magassága.
#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>
C++ szerkezeti példa: Constructor és Method használata
Nézzünk egy másik példát a struktúrára, ahol a konstruktort használjuk az adatok inicializálására és a módszert a téglalap területének kiszámítására.
#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>
Szerkezet v/s osztály
Szerkezet | Osztály |
---|---|
Ha a hozzáférés-meghatározó nincs kifejezetten deklarálva, akkor alapértelmezés szerint a hozzáférés-meghatározó nyilvános lesz. | Ha a hozzáférés-meghatározó nincs kifejezetten deklarálva, akkor alapértelmezés szerint a hozzáférés-meghatározó privát lesz. |
A szerkezet szintaxisa: struct szerkezet_neve { // a szerkezet törzse. } | Az osztály szintaxisa: osztály osztálynév { // az osztály törzse. } |
A struktúra példánya „Struktúraváltozó” néven ismert. | Az osztály példánya az „Osztály objektuma” néven ismert. |