logo

Struktury C++

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

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

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”.