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<<'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>
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<<\'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 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'. |