În C++, clasele și structurile sunt planuri care sunt folosite pentru a crea instanța unei clase. Structurile sunt folosite pentru obiecte ușoare, cum ar fi dreptunghi, culoare, punct etc.
Spre deosebire de clasă, structurile din C++ sunt de tip valoare decât tip de referință. Este util dacă aveți date care nu sunt destinate să fie modificate după crearea structurii.
compoziția relației
Structura C++ este o colecție de diferite tipuri de date. Este similar cu clasa care deține diferite tipuri de date.
Sintaxa Structurii
struct structure_name { // member declarations. }
În declarația de mai sus, o structură este declarată precedând cuvânt cheie struct urmat de identificator (numele structurii). În interiorul acoladelor, putem declara variabilele membre de diferite tipuri. Luați în considerare următoarea situație:
struct Student { char name[20]; int id; int age; }
În cazul de mai sus, Student este o structură care conține trei variabile nume, id și vârstă. Când structura este declarată, nu este alocată nicio memorie. Când este creată variabila unei structuri, atunci memoria este alocată. Să înțelegem acest scenariu.
Cum se creează instanța de Structure?
Variabila de structură poate fi definită ca:
Elevi;
matrice de returnare java
Aici, s este o variabilă de structură de tip Student . Când variabila de structură este creată, memoria va fi alocată. Structura student conține o variabilă char și două variabile întregi. Prin urmare, memoria pentru o variabilă char este de 1 octet și două inți vor fi 2*4 = 8. Memoria totală ocupată de variabila s este de 9 octeți.
Cum se accesează variabila Structure:
Variabila structurii poate fi accesată prin simpla utilizare a instanței structurii urmată de operatorul punct (.) și apoi de câmpul structurii.
De exemplu:
baza de date a proprietăților acidului
s.id = 4;
În declarația de mai sus, accesăm câmpul id al structurii Student utilizând punct(.) operator și atribuie valoarea 4 câmpului id.
Exemplu de structură C++
Să vedem un exemplu simplu de struct Rectangle care are doi membri de date lățimea și înălțimea.
#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>
Exemplu de structură C++: Utilizarea constructorului și a metodei
Să vedem un alt exemplu de struct în care folosim constructorul pentru a inițializa datele și metoda pentru a calcula aria dreptunghiului.
#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>
Structura v/s Clasa
Structura | Clasă |
---|---|
Dacă specificatorul de acces nu este declarat explicit, atunci, implicit, specificatorul de acces va fi public. | Dacă specificatorul de acces nu este declarat explicit, atunci, implicit, specificatorul de acces va fi privat. |
Sintaxa structurii: struct structure_name { // corpul structurii. } | Sintaxa clasei: clasa class_name { // corpul clasei. } |
Instanța structurii este cunoscută ca „variabilă de structură”. | Instanța clasei este cunoscută ca „Obiect al clasei”. |