logo

C++ strukture

U C++, klase i strukture su nacrti koji se koriste za stvaranje instance klase. Strukture se koriste za lagane objekte kao što su pravokutnik, boja, točka itd.

Za razliku od klase, strukture u C++ su vrijednosni tip nego referentni tip. Korisno je ako imate podatke koji se ne namjeravaju mijenjati nakon stvaranja strukture.

izbornik postavki android telefona

C++ struktura je skup različitih vrsta podataka. Slično je klasi koja sadrži različite vrste podataka.

Sintaksa strukture

 struct structure_name { // member declarations. } 

U gornjoj deklaraciji, struktura se deklarira prethodeći struct ključna riječ nakon čega slijedi identifikator (naziv strukture). Unutar vitičastih zagrada možemo deklarirati varijable članice različitih tipova. Razmotrite sljedeću situaciju:

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

U gornjem slučaju, Student je struktura koja sadrži tri varijable name, id i age. Kada je struktura deklarirana, memorija se ne dodjeljuje. Kada se kreira varijabla strukture, tada se dodjeljuje memorija. Razumimo ovaj scenarij.

Kako stvoriti instancu Strukture?

Varijabla strukture može se definirati kao:

Student s;

datoteka otvorena u Javi

Ovdje je s strukturna varijabla tipa Student . Kada se kreira varijabla strukture, memorija će biti dodijeljena. Studentska struktura sadrži jednu char varijablu i dvije integer varijable. Prema tome, memorija za jednu char varijablu je 1 bajt, a dva inta će biti 2*4 = 8. Ukupna memorija koju zauzima varijabla s je 9 bajtova.

Kako pristupiti varijabli Struktura:

Varijabli strukture može se pristupiti jednostavnim korištenjem instance strukture nakon koje slijedi operator točka (.), a zatim polje strukture.

Na primjer:

 s.id = 4; 

U gornjoj izjavi, mi pristupamo id polju strukture Student pomoću točka(.) operator i dodjeljuje vrijednost 4 id polju.

Primjer C++ strukture

Pogledajmo jednostavan primjer struct Rectangle koji ima dva podatkovna člana širinu i visinu.

najbolji automobili na svijetu
 #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>

Primjer C++ strukture: korištenje konstruktora i metode

Pogledajmo još jedan primjer strukture gdje koristimo konstruktor za inicijalizaciju podataka i metodu za izračunavanje površine pravokutnika.

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

Struktura Klasa
Ako specifikator pristupa nije izričito deklariran, tada će prema zadanim postavkama specifikator pristupa biti javan. Ako specifikator pristupa nije izričito deklariran, tada će prema zadanim postavkama specifikator pristupa biti privatan.
Sintaksa strukture:

struct ime_strukture
{
// tijelo strukture.
}
Sintaksa klase:

klasa class_name
{
// tijelo klase.
}
Instanca strukture poznata je kao 'varijabla strukture'. Instanca klase poznata je kao 'objekt klase'.