C++ Rakenna esimerkillä
Mikä on rakenne C++?
A RAKENNE on C++ tietorakenne, jota voidaan käyttää eri tietotyyppien elementtien tallentamiseen yhteen. sisään C++, rakenne on käyttäjän määrittämä tietotyyppi. Rakenne luo tietotyypin eri tietotyyppien kohteiden ryhmittelyä varten yhden tietotyypin alle.
Esimerkiksi:
Oletetaan, että sinun on tallennettava tietoja henkilöstä, hänen nimensä, kansalaisuutensa ja iänsä. Voit luoda muuttujia, kuten nimen, kansalaisuuden ja iän, tallentaaksesi tiedot erikseen.
Saatat kuitenkin joutua tallentamaan tietoja monista henkilöistä tulevaisuudessa. Se tarkoittaa, että muuttujat luodaan eri henkilöille. Esimerkiksi nimi1, kansalaisuus1, ikä1 jne. Tämän välttämiseksi on parempi luoda rakenne.
Milloin rakennetta käytetään?
Tässä on joitain syitä käyttää rakennetta C++.
- Käytä rakennetta, kun haluat tallentaa eri tietotyyppien elementtejä samaan tietotyyppiin.
- C++ structs ovat arvotyyppi eikä viitetyyppi. Käytä rakennetta, jos et aio muokata tietojasi luomisen jälkeen.
C++ Rakenteen alustus
Luo a C++ rakenne, käytämme struct-avainsanaa, jota seuraa tunniste. Tunnisteesta tulee rakenteen nimi. Tässä on syntaksi a:n luomiselle C++ rakenne:
Syntaksi:
struct struct_name
{
// struct members
}
Yllä olevassa syntaksissa olemme käyttäneet struct-avainsanaa. Rakenteen_nimi on rakenteen nimi.
Rakenneosat lisätään kiharaisiin aaltosulkeisiin. Nämä jäsenet kuuluvat todennäköisesti eri tietotyyppeihin.
Esimerkiksi:
struct Person
{
char name[30];
int citizenship;
int age;
}
Yllä olevassa esimerkissä henkilö on rakenne, jossa on kolme jäsentä. Jäsenet ovat nimi, kansalaisuus ja ikä. Yksi jäsen on char-tietotyyppiä, kun taas loput 2 ovat kokonaislukuja, kun rakenne luodaan, muistia ei varata. Muisti varataan vasta, kun muuttuja on lisätty rakenteeseen.
Rakenneesiintymien luominen
Yllä olevassa esimerkissä olemme luoneet rakenteen nimeltä Henkilö. Voimme luoda rakennemuuttujan seuraavasti:
Person p;
P on henkilötyypin rakennemuuttuja. Voimme käyttää tätä muuttujaa päästäksemme rakenteen jäseniin.
Pääsy rakenteen jäseniin
Rakenteen jäseniin pääsemiseksi käytämme rakenteen esiintymää ja piste (.) -operaattoria. Esimerkiksi, jos haluat käyttää struct Person -jäsenen ikää:
p.age = 27;
Olemme käyttäneet struct Person -jäsenen ikää structin ilmentymän avulla, s. Tämän jälkeen olemme asettanut jäsenen iän arvoksi 27 vuotta.
Esimerkki 1:
#include <iostream>
using namespace std;
struct Person
{
int citizenship;
int age;
};
int main(void) {
struct Person p;
p.citizenship = 1;
p.age = 27;
cout << "Person citizenship: " << p.citizenship << endl;
cout << "Person age: " << p.age << endl;
return 0;
}
lähtö:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto ohjelmaamme käyttääksesi siinä määritettyjä toimintoja.
- Sisällytä std-nimiavaruus, jotta voit käyttää sen luokkia kutsumatta sitä.
- Luo rakenne nimeltä Henkilö.
- Rakenteen rungon alku.
- Luo rakenteen jäsen nimeltä kansalaisuus, jonka tyyppi on kokonaisluku.
- Luo rakenteen jäsen nimeltä ikä, jonka tyyppi on kokonaisluku.
- Rakenteen rungon loppu.
- Kutsu main()-funktiota. Ohjelmalogiikka tulisi lisätä tämän funktion runkoon.
- Luo ilmentymä rakenteesta Person ja anna sille nimi p.
- Aseta struct-jäsenen kansalaisuuden arvoksi 1.
- Aseta rakenteen jäsenen iän arvoksi 27.
- Tulosta konsoliin struct-jäsenen kansalaisuuden arvo jonkin muun tekstin rinnalle.
- Tulosta struct-jäsenen iän arvo konsoliin jonkin muun tekstin rinnalle.
- Ohjelman pitäisi palauttaa arvo, jos se toimii onnistuneesti.
- Main()-funktion loppu.
Osoittimet rakenteeseen
On mahdollista luoda osoitin, joka osoittaa rakenteeseen. Se on samanlainen kuin osoittimien luominen, jotka osoittavat alkuperäisiin tietotyyppeihin, kuten int, float, double jne.. Huomaa, että osoitin sisään C++ tallentaa muistipaikan.
Esimerkki 2:
#include <iostream>
using namespace std;
struct Length
{
int meters;
float centimeters;
};
int main()
{
Length *ptr, l;
ptr = &l;
cout << "Enter meters: ";
cin >> (*ptr).meters;
cout << "Enter centimeters: ";
cin >> (*ptr).centimeters;
cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";
return 0;
}
lähtö:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto ohjelmaamme, jotta voit käyttää sen toimintoja.
- Sisällytä std-nimiavaruus ohjelmaamme, jotta voit käyttää sen luokkia kutsumatta sitä.
- Luo rakenne nimeltä pituus.
- Rakenteen rungon alku Pituus.
- Luo rakenteen jäsen nimeltä metrejä, joiden tietotyyppi on kokonaisluku.
- Luo rakenteen jäsen nimeltä senttimetrit ja jonka tyyppi on kokonaisluku.
- Rakenteen rungon pää Pituus.
- Kutsu main()-funktiota.
- Main()-funktion rungon alku.
- Luo osoitinmuuttuja *ptr ja normaalimuuttuja l tyyppiä Length.
- Tallenna muuttujan l osoite meidän osoittimen muuttuja.
- Näytä konsoliin viesti, jossa käyttäjää pyydetään syöttämään muuttuvien mittarien arvo.
- Lue käyttäjän näppäimistöllä syöttämä arvo. Jäsenfunktiomittareita käytetään tässä osoitinmuuttujan avulla.
- Näytä konsolissa viesti, jossa pyydetään käyttäjää syöttämään muuttuvien senttimetrien arvo.
- Lue käyttäjän näppäimistöllä syöttämä arvo. Jäsenfunktion senttimetreihin päästään tässä osoitinmuuttujan avulla.
- Näytä käyttäjältä luetut arvot konsolissa jonkin muun tekstin rinnalla.
- Ohjelman on palautettava arvo onnistuneen suorituksen jälkeen.
- Main()-funktion rungon loppu.
Rakenne funktion argumenttina
Voit välittää rakenteen funktiolle argumenttina. Tämä tehdään samalla tavalla kuin normaali argumentti. Rakennemuuttujat voidaan välittää myös funktiolle. Hyvä esimerkki on, kun sinun on näytettävä rakenteen jäsenten arvot. Osoitetaan tämä:
Esimerkki 3:
#include<iostream>
using namespace std;
struct Person
{
int citizenship;
int age;
};
void func(struct Person p);
int main()
{
struct Person p;
p.citizenship = 1;
p.age = 27;
func(p);
return 0;
}
void func(struct Person p)
{
cout << " Person citizenship: " << p.citizenship<<endl;
cout << " Person age: " << p.age;
}
lähtö:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto tiedostoomme. Sitten käytämme sen toimintoja ilman virheitä.
- Sisällytä std-nimiavaruus ohjelmaamme käyttääksesi sen luokkia. Meidän ei tarvitse kutsua nimiavaruutta käyttääksemme sen luokkia.
- Luo rakenne nimeltä Henkilö.
- Rakenteen persoonan alku.
- Luo jäsen struct Personiin. Jäsen on nimeltään kansalaisuus ja on tyyppiä kokonaisluku.
- Luo jäsen struct Personiin. Jäsen on nimeltään ikä ja se on tyyppiä kokonaisluku.
- Struktuurihenkilön rungon loppu.
- Luo funktio, joka ottaa argumentiksi structin Person, p, esiintymän.
- Kutsu päätoiminto. { merkitsee main()-funktion rungon alkua.
- Luo struct Person -esiintymä ja anna sille nimi p.
- Käytä struct-jäsenmuuttujaa kansalaisuus käyttämällä rakenteen esiintymää p ja antamalla sille arvon 1.
- Pääset rakenteen jäsenmuuttujaan ikä käyttämällä rakenteen esiintymää p ja antamalla sille arvon 27.
- Kutsu funktio ja välitä sille argumentiksi rakenteen Person, p, esiintymä.
- Toiminnon on palautettava arvo onnistuneen suorituksen jälkeen.
- Main()-funktion rungon loppu.
- Luo funktion runko.
- Toiminnon rungon alku.
- Käytä struct-jäsenen kansalaisuusarvoa ja tulosta se konsoliin muun tekstin rinnalle.
- Käytä struct-jäsenen ikäarvoa ja tulosta se konsolissa muun tekstin rinnalle.
- Toimintokappaleen loppu.
Rajoitus a C++ rakenne
Rakenteiden rajoitukset ovat seuraavat:
- Rakennetietotyyppiä ei voida käsitellä kuten sisäänrakennettuja tietotyyppejä.
- Operatorit, kuten + -, ja muita ei voida käyttää rakennemuuttujat.
- Rakenteet eivät tue tietojen piilottamista. Rakenteen jäseniä voi käyttää mikä tahansa toiminto sen laajuudesta riippumatta.
- Staattisia osia ei voida ilmoittaa rakenteen rungon sisällä.
- Rakentajia ei voi luoda rakenteen sisään.
Yhteenveto
- Rakenne on tietorakenne, joka tallentaa eri tyyppeihin kuuluvia tietoelementtejä.
- Kun taulukko tallentaa samantyyppisiä tietoelementtejä, rakenne tallentaa erityyppisiä tietoelementtejä.
- Rakennetta tulee käyttää, kun tietoelementtien ei odoteta muuttavan arvoa.
- Rakenteen jäseniin päästään käyttämällä piste (.) -operaattoria.
- Meidän on luotava rakenteen esiintymä.
- Luo a C++ struct, käytämme avainsanaa struct.
- Rakenteeseen osoittavat osoittimet luodaan samalla tavalla kuin tavallisiin tyyppeihin osoittavat osoittimet.
- Rakenne voidaan välittää argumenttina funktiolle samalla tavalla kuin tavalliset funktiot.



