logo

C++ struktúrák

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&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++ 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&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>

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.