logo

C++ -rakenteet

C++:ssa luokat ja rakenteet ovat piirustuksia, joita käytetään luomaan luokan ilmentymä. Rakenteita käytetään kevyille esineille, kuten suorakulmiolle, värille, pisteelle jne.

Toisin kuin luokassa, C++:n rakenteet ovat arvotyyppiä kuin viitetyyppiä. Se on hyödyllinen, jos sinulla on tietoja, joita ei ole tarkoitus muuttaa rakenteen luomisen jälkeen.

jfx java opetusohjelma

C++ rakenne on kokoelma erilaisia ​​tietotyyppejä. Se on samanlainen kuin luokka, joka sisältää erityyppisiä tietoja.

Rakenteen syntaksi

 struct structure_name { // member declarations. } 

Yllä olevassa ilmoituksessa rakenne on ilmoitettu edeltäen struct avainsana jota seuraa tunniste (rakenteen nimi). Aaltosulkeiden sisällä voimme ilmoittaa erityyppiset jäsenmuuttujat. Harkitse seuraavaa tilannetta:

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

Yllä olevassa tapauksessa Student on rakenne, joka sisältää kolme muuttujaa name, id ja age. Kun rakenne on ilmoitettu, muistia ei varata. Kun rakenteen muuttuja luodaan, varataan muisti. Ymmärretään tämä skenaario.

Miten rakenne-instanssi luodaan?

Rakennemuuttuja voidaan määritellä seuraavasti:

Opiskelija s;

char tostring java

Tässä s on tyyppinen rakennemuuttuja Opiskelija . Kun rakennemuuttuja on luotu, muisti varataan. Opiskelijarakenne sisältää yhden char-muuttujan ja kaksi kokonaislukumuuttujaa. Siksi yhden char-muuttujan muisti on 1 tavu ja kaksi ints-arvoa on 2*4 = 8. Muuttujan s kokonaismuisti on 9 tavua.

Näin pääset käsiksi rakennemuuttujaan:

Rakenteen muuttujaa voidaan käyttää yksinkertaisesti käyttämällä rakenteen esiintymää, jota seuraa piste (.) -operaattori ja sitten rakenteen kenttää.

Esimerkiksi:

 s.id = 4; 

Yllä olevassa lauseessa pääsemme rakenteen Student id-kenttään käyttämällä piste(.) operaattori ja antaa id-kenttään arvon 4.

document.queryselector

Esimerkki C++-rakenteesta

Katsotaanpa yksinkertaista esimerkkiä struct Rectangle -rakenteesta, jossa on kaksi datajäsentä leveys ja korkeus.

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

C++-rakenneesimerkki: Constructorin ja Methodin käyttäminen

Katsotaanpa toinen esimerkki rakenteesta, jossa käytämme rakentajaa tietojen alustamiseen ja menetelmää suorakulmion alueen laskemiseen.

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

Rakenne v/s-luokka

Rakenne Luokka
Jos pääsyä ei ole erikseen ilmoitettu, käyttöoikeusmäärittely on oletuksena julkinen. Jos käyttöoikeusmääritteitä ei ole erikseen ilmoitettu, käyttöoikeusmäärittäjä on oletuksena yksityinen.
Rakenteen syntaksi:

struct rakenteen_nimi
{
// rakenteen runko.
}
Luokan syntaksi:

luokka luokan_nimi
{
// luokan runko.
}
Rakenteen esiintymä tunnetaan nimellä 'rakennemuuttuja'. Luokan esiintymä tunnetaan nimellä 'luokan objekti'.