logo

C++ struktūras

C++ valodā klases un struktūras ir rasējumi, kas tiek izmantoti, lai izveidotu klases gadījumu. Struktūras tiek izmantotas viegliem objektiem, piemēram, taisnstūrim, krāsai, punktam utt.

Atšķirībā no klases, C++ struktūras ir vērtību tips, nevis atsauces tips. Tas ir noderīgi, ja jums ir dati, kurus nav paredzēts modificēt pēc struktūras izveides.

rinda pret kolonnu

C++ struktūra ir dažādu datu tipu kolekcija. Tas ir līdzīgs klasei, kurā ir dažāda veida dati.

Struktūras sintakse

 struct structure_name { // member declarations. } 

Iepriekš minētajā deklarācijā struktūra ir deklarēta pirms struktūras atslēgvārds kam seko identifikators (struktūras nosaukums). Cirtainajās lencēs mēs varam deklarēt dažādu veidu dalībnieku mainīgos. Apsveriet šādu situāciju:

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

Iepriekš minētajā gadījumā Students ir struktūra, kas satur trīs mainīgos nosaukumu, id un vecumu. Kad struktūra ir deklarēta, atmiņa netiek piešķirta. Kad tiek izveidots struktūras mainīgais, tiek piešķirta atmiņa. Sapratīsim šo scenāriju.

Kā izveidot struktūras instanci?

Struktūras mainīgo var definēt šādi:

Students s;

Charat virknē

Šeit s ir tipa struktūras mainīgais Students . Kad struktūras mainīgais ir izveidots, atmiņa tiks piešķirta. Studentu struktūra satur vienu char mainīgo un divus veselus skaitļus. Tāpēc viena char mainīgā atmiņa ir 1 baits un divi ints būs 2*4 = 8. Kopējā atmiņa, ko aizņem mainīgais s, ir 9 baiti.

Kā piekļūt Struktūras mainīgajam:

Struktūras mainīgajam var piekļūt, vienkārši izmantojot struktūras gadījumu, kam seko punktu (.) operators un pēc tam struktūras lauku.

Piemēram:

 s.id = 4; 

Iepriekš minētajā paziņojumā mēs piekļūstam struktūras Students id laukam, izmantojot punkts (.) operatoru un piešķir id laukam vērtību 4.

virkne uz int

C++ struktūras piemērs

Apskatīsim vienkāršu struktūras taisnstūra piemēru, kurā ir divi datu elementi, platums un augstums.

 #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++ struktūras piemērs: konstruktora un metodes izmantošana

Apskatīsim vēl vienu struktūras piemēru, kur mēs izmantojam konstruktoru datu inicializācijai un metodi taisnstūra laukuma aprēķināšanai.

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

Struktūra v/s Klase

Struktūra Klase
Ja piekļuves norādītājs nav skaidri norādīts, pēc noklusējuma piekļuves norādītājs būs publisks. Ja piekļuves norādītājs nav skaidri norādīts, pēc noklusējuma piekļuves norādītājs būs privāts.
Struktūras sintakse:

struktūras struktūras_nosaukums
{
// struktūras korpuss.
}
Klases sintakse:

klases klases_nosaukums
{
// klases pamatteksts.
}
Struktūras gadījums ir pazīstams kā 'struktūras mainīgais'. Klases gadījums ir pazīstams kā “klases objekts”.