C++ kalboje klasės ir struktūros yra brėžiniai, naudojami klasės egzemplioriui sukurti. Konstrukcijos naudojamos lengviems objektams, tokiems kaip stačiakampis, spalva, taškas ir kt.
Skirtingai nuo klasės, C++ struktūros yra vertės tipo, o ne nuorodos tipo. Tai naudinga, jei turite duomenų, kurių neketinama keisti sukūrus struktūrą.
aws raudonasis poslinkis
C++ struktūra yra įvairių duomenų tipų rinkinys. Tai panaši į klasę, kurioje saugomi įvairių tipų duomenys.
Struktūros sintaksė
struct structure_name { // member declarations. }
Aukščiau pateiktoje deklaracijoje struktūra deklaruojama prieš struktūrinis raktinis žodis po kurio nurodomas identifikatorius (struktūros pavadinimas). Garbanotųjų petnešėlių viduje galime deklaruoti skirtingų tipų narių kintamuosius. Apsvarstykite šią situaciją:
struct Student { char name[20]; int id; int age; }
Pirmiau nurodytu atveju Studentas yra struktūra, kurią sudaro trys kintamieji pavadinimas, ID ir amžius. Kai deklaruojama struktūra, atmintis neskiriama. Sukūrus struktūros kintamąjį, paskirstoma atmintis. Supraskime šį scenarijų.
Kaip sukurti struktūros egzempliorių?
Struktūros kintamąjį galima apibrėžti taip:
Student s;
pašalinti pirmąjį simbolį Excel
Čia s yra tipo struktūros kintamasis Studentas . Sukūrus struktūros kintamąjį, atmintis bus skirta. Mokinio struktūroje yra vienas char kintamasis ir du sveikųjų skaičių kintamieji. Todėl vieno char kintamojo atmintis yra 1 baitas, o du ints bus 2*4 = 8. Bendra atmintis, kurią užima kintamasis s, yra 9 baitai.
Kaip pasiekti struktūros kintamąjį:
Struktūros kintamąjį galima pasiekti tiesiog naudojant struktūros egzempliorių, po kurio nurodomas taško (.) operatorius ir struktūros laukas.
„abc“ yra skaičiais
Pavyzdžiui:
s.id = 4;
Aukščiau pateiktame teiginyje mes pasiekiame struktūros Studento ID lauką naudodami taškas (.) operatorių ir id laukui priskiria 4 reikšmę.
C++ struktūros pavyzdys
Pažiūrėkime paprastą struct Rectangle pavyzdį, kuris turi du duomenų elementus, plotį ir aukštį.
#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++ struktūros pavyzdys: konstruktoriaus ir metodo naudojimas
Pažiūrėkime dar vieną konstrukcijos pavyzdį, kai mes naudojame konstruktorių duomenims inicijuoti ir metodą stačiakampio plotui apskaičiuoti.
#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>
Struktūra v/s klasė
Struktūra | Klasė |
---|---|
Jei prieigos specifikatorius nėra aiškiai nurodytas, tada pagal numatytuosius nustatymus prieigos specifikacija bus vieša. | Jei prieigos specifikatorius nėra aiškiai nurodytas, tada pagal numatytuosius nustatymus prieigos specifikatorius bus privatus. |
Struktūros sintaksė: struktūros_vardas { // struktūros korpusas. } | Klasės sintaksė: klasė klasės_pavadinimas { // klasės turinys. } |
Struktūros egzempliorius žinomas kaip „Struktūros kintamasis“. | Klasės egzempliorius žinomas kaip „Klasės objektas“. |