W C++ klasy i struktury to plany używane do tworzenia instancji klasy. Struktury są używane do lekkich obiektów, takich jak prostokąt, kolor, punkt itp.
W przeciwieństwie do klas, struktury w C++ są typem wartościowym, a nie referencyjnym. Jest to przydatne, jeśli masz dane, które nie mają być modyfikowane po utworzeniu struktury.
dla pętli basha
Struktura C++ to zbiór różnych typów danych. Jest podobna do klasy przechowującej różne typy danych.
Składnia struktury
struct structure_name { // member declarations. }
W powyższej deklaracji struktura jest deklarowana poprzez poprzedzanie słowo kluczowe struct po którym następuje identyfikator (nazwa struktury). Wewnątrz nawiasów klamrowych możemy zadeklarować zmienne składowe różnych typów. Rozważ następującą sytuację:
struct Student { char name[20]; int id; int age; }
W powyższym przypadku Student jest strukturą zawierającą trzy zmienne: name, id i age. Po zadeklarowaniu struktury nie jest przydzielana żadna pamięć. Kiedy tworzona jest zmienna struktury, następuje alokacja pamięci. Rozumiemy ten scenariusz.
Jak utworzyć instancję Struktury?
Zmienną struktury można zdefiniować jako:
Student s;
skróty klawiaturowe w Linuksie
Tutaj s jest zmienną struktury typu Student . Po utworzeniu zmiennej struktury pamięć zostanie przydzielona. Struktura ucznia zawiera jedną zmienną char i dwie zmienne typu integer. Dlatego pamięć dla jednej zmiennej char wynosi 1 bajt, a dwa inty będą wynosić 2*4 = 8. Całkowita pamięć zajmowana przez zmienną s wynosi 9 bajtów.
Jak uzyskać dostęp do zmiennej Struktura:
Dostęp do zmiennej struktury można uzyskać po prostu używając instancji struktury, po której następuje operator kropki (.), a następnie pole struktury.
xd xd znaczenie
Na przykład:
s.id = 4;
W powyższym stwierdzeniu uzyskujemy dostęp do pola id struktury Student za pomocą kropka(.) operator i przypisuje wartość 4 do pola id.
Przykład struktury C++
Zobaczmy prosty przykład struktury Rectangle, która ma szerokość i wysokość dwóch elementów danych.
#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>
Przykład struktury C++: użycie konstruktora i metody
Zobaczmy inny przykład struktury, w którym używamy konstruktora do inicjowania danych i metody obliczania pola prostokąta.
#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>
Struktura v/s klasa
Struktura | Klasa |
---|---|
Jeśli specyfikator dostępu nie jest zadeklarowany jawnie, domyślnie specyfikator dostępu będzie publiczny. | Jeśli specyfikator dostępu nie jest zadeklarowany jawnie, domyślnie specyfikator dostępu będzie prywatny. |
Składnia struktury: struktura nazwa_struktury { // korpus konstrukcji. } | Składnia klasy: klasa nazwa_klasy { //Ciało klasy. } |
Instancja struktury jest nazywana „zmienną struktury”. | Instancja klasy nazywana jest „Obiektem klasy”. |