Mikä on rakenne C ++: ssa?
STRUCT on C ++ tietorakennetta, jota voidaan käyttää tallentamaan yhteen elementtejä eri tietotyyppejä. C ++: ssa rakenne on käyttäjän määrittelemä tietotyyppi. Rakenne luo tietotyypin erilaisten tietotyyppien kohteiden ryhmittelemiseksi yhteen tietotyyppiin.
Esimerkiksi:
Oletetaan, että sinun on tallennettava tietoja jostakin, hänen nimestään, kansalaisuudestaan ja iästä. Voit luoda muuttujia, kuten nimi, kansalaisuus ja ikä, jotta voit tallentaa tiedot erikseen.
Saatat kuitenkin joutua tallentamaan tietoja monista henkilöistä tulevaisuudessa. Se tarkoittaa, että luodaan muuttujia eri yksilöille. Esimerkiksi nimi1, kansalaisuus1, ikä1 jne. Tämän välttämiseksi on parempi luoda rakenne.
Tässä C ++ -opetusohjelmassa opit:
- Mikä on rakenne C ++: ssa?
- Milloin rakennetta käytetään?
- C ++ Rakenteiden alustus
- Rakennesimerkkien luominen
- Pääsy rakenteellisiin jäseniin
- Ohjeita rakenteeseen
- Rakenne funktion argumenttina
- C ++ - rakenteen rajoitus
Milloin rakennetta käytetään?
Tässä on joitain syitä rakenteen käyttämiseen C ++: ssa.
- Käytä rakennetta, kun haluat tallentaa erilaisten tietotyyppien elementtejä yhteen tietotyyppiin.
- C ++ -rakenteet ovat arvotyyppi eikä referenssityyppi. Käytä rakennetta, jos et aio muuttaa tietojasi luomisen jälkeen.
C ++ Rakenteiden alustus
C ++ -rakenteen luomiseen käytämme struct-avainsanaa, jota seuraa tunniste. Tunnisteesta tulee rakenneen nimi. Tässä on syntaksia C ++ -rakenteen luomiseen:
Syntaksi:
struct struct_name{// struct members}
Edellä olevassa syntaksissa olemme käyttäneet struct-avainsanaa. Struct_name on rakenteen nimi.
Rakenteelliset jäsenet 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ä Person on rakenne, jossa on kolme jäsentä. Jäsenet sisältävät nimen, kansalaisuuden ja iän. Yksi jäsen on char-tietotyyppiä, kun taas loput 2 ovat kokonaislukuja, kun rakenne luodaan, muistia ei varaeta. Muisti varataan vasta sen jälkeen, kun muuttuja on lisätty rakenteeseen.
Rakennesimerkkien luominen
Yllä olevassa esimerkissä olemme luoneet rakenteen nimeltä Henkilö. Voimme luoda rakennemuuttujan seuraavasti:
Person p;
P on tyypin Henkilö rakennemuuttuja. Voimme käyttää tätä muuttujaa päästäksesi jäsenten jäsentä.
Pääsy rakenteellisiin jäseniin
Strukturijäseniin pääsemiseksi käytämme struct-instanssia ja piste- (.) Operaattoria. Esimerkiksi, jos haluat käyttää jäsenneltyä jäsentä:
p.age = 27;
Olemme päässeet Struct Person -jäsenikään käyttämällä struct-instanssia, s. Olemme sitten asettaneet jäsenikän arvoksi 27.
Esimerkki 1:
#includeusing 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;}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto ohjelmaamme käyttääksesi siinä määriteltyjä toimintoja.
- Sisällytä vakio nimitila käyttääksesi luokkia kutsumatta sitä.
- Luo rakenne nimeltä Henkilö.
- Strukturisen rungon alku.
- Luo struktur-jäsen nimeltä kansalaisuuden tyyppi kokonaisluku.
- Luo struktur-jäsen nimeltä tyyppi kokonaisluku.
- Rakenneosan loppu.
- Kutsu main () -toiminto. Ohjelmalogiikka tulisi lisätä tämän toiminnon runkoon.
- Luo struct Person -esiintymä ja antamalla sille nimi p.
- Aseta jäsennellyn jäsenyyden arvo 1.
- Aseta jäsennetyn iän arvoksi 27.
- Tulosta jäsennellyn jäsenyyden arvo konsolille jonkin muun tekstin ohella.
- Tulosta jäsennetyn iän arvo konsolille jonkin muun tekstin ohella.
- Ohjelman tulisi palauttaa arvo, jos se toimii onnistuneesti.
- Päätoiminnon () loppu.
Ohjeita rakenteeseen
On mahdollista luoda osoitin, joka osoittaa rakenteen. Se on samanlainen kuin natiiviin tietotyyppiin, kuten int, float, double, jne. Osoittavat osoittimet luodaan. Huomaa, että osoitin C ++: ssa tallentaa muistipaikan.
Esimerkki 2:
#includeusing 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;}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto ohjelmaamme käyttääksesi sen toimintoja.
- Sisällytä vakio nimitila ohjelmaamme käyttääksesi luokkia sitä kutsumatta.
- Luo rakenne nimeltä Pituus.
- Rakenteen pituuden rungon alku.
- Luo struktur-jäsen nimeltä kokonaislukutietotyypin metrit.
- Luo rakenteellinen jäsen nimeltä senttimetrit tyypin kokonaisluku.
- Rakenteen pituus Pituus.
- Kutsu main () -toiminto.
- Pääfunktion () rungon alku.
- Luo osoitinmuuttuja * ptr ja normaali muuttuja l, jonka tyyppi on Pituus.
- Tallenna muuttujan l osoite osoitemuuttujaamme.
- Näytä konsolissa viesti, jossa käyttäjää pyydetään syöttämään muuttuvien mittareiden arvo.
- Lue käyttäjän kirjoittama arvo näppäimistön avulla. Jäsenfunktiomittareihin pääsee tässä osoittimen muuttujan avulla.
- Näytä konsolissa viesti, jossa käyttäjää pyydetään antamaan muuttuvien senttimetrien arvo.
- Lue käyttäjän kirjoittama arvo näppäimistön avulla. Jäsenfunktiosenttimetreihin pääsee tässä osoittimen muuttujan avulla.
- Näytä käyttäjältä luetut arvot konsolissa jonkin muun tekstin rinnalla.
- Ohjelman on palautettava arvo suorituksen jälkeen.
- Pääfunktion () rungon pää.
Rakenne funktion argumenttina
Voit siirtää funktion funktion argumenttina. Tämä tehdään samalla tavalla kuin normaalin argumentin välittäminen. Rakennemuuttujat voidaan välittää myös funktiolle. Hyvä esimerkki on, kun sinun on näytettävä jäsenten arvot. Osoitetaan tämä:
Esimerkki 3:
#includeusing 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< Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto tiedostoon. Käytämme sitten sen toimintoja saamatta virheitä.
- Sisällytä vakio nimitila ohjelmaamme käyttääksesi luokkia. Meidän ei tarvitse kutsua nimitilaa käyttääksesi luokkia.
- Luo rakenne nimeltä Henkilö.
- Strukturoidun henkilön rungon alku.
- Luo struct Person -jäsen. Jäsen on nimetty kansalaisuudeksi ja on tyypin kokonaisluku.
- Luo struct Person -jäsen. Jäsen on nimetty ikä ja on tyypin kokonaisluku.
- Strukturoidun henkilön rungon loppu.
- Luo funktio, joka käyttää argumenttina strukturoitua Person, p: tä.
- Kutsu päätoiminto. {Tarkoittaa pääfunktion () rungon alkua.
- Luo struct Person -esiintymä ja antamalla sille nimi p.
- Voit käyttää struct-jäsenmuuttujan kansalaisuutta käyttämällä struct-esimerkkiä p ja antamalla sille arvon 1.
- Pääse strukturoitavan jäsenen muuttuvaan ikään käyttämällä struct-esimerkkiä p ja antamalla sille arvo 27.
- Kutsu funktiota ja välitä sille argumentti strukturoitu Henkilö, p.
- Funktion on palautettava arvo onnistuneen suorituksen jälkeen.
- Pääfunktion () rungon pää.
- Luo funktion runko.
- Funktion rungon alku.
- Pääset jäsennellyn jäsenen kansalaisuusarvoon ja tulosta se konsolille muun tekstin rinnalle.
- Pääse jäsennellyn jäsenen ikäarvoon ja tulosta se konsolille muun tekstin kanssa.
- Funktion rungon loppu.
C ++ - rakenteen rajoitus
Rakenteiden rajoitukset ovat seuraavat:
- Rakennetietotyyppiä ei voida käsitellä sisäänrakennettuina tietotyypeiksi.
- Operaattoreita, kuten + - ja muita, ei voida käyttää rakennemuuttujiin.
- Rakenteet eivät tue tietojen piilottamista. Rakenteen jäseniä voi käyttää millä tahansa toiminnolla sen laajuudesta riippumatta.
- Staattisia jäseniä ei voida ilmoittaa rakennekappaleen sisällä.
- Rakentajia ei voida luoda rakenteen sisään.
Yhteenveto:
- Struct on tietorakenne, joka tallentaa erityyppisiin tietoihin liittyviä elementtejä.
- Taulukko tallentaa saman tyyppisiä tietoelementtejä, kun taas rakenne tallentaa erityyppisiä tietoelementtejä.
- Rakennetta tulisi käyttää, kun tietoelementtien ei odoteta muuttavan arvoa.
- Rakenteen jäseniä käytetään piste (.) -Operaattorilla.
- Meidän on luotava instanssi strukturista.
- C ++ -rakenteen luomiseen käytämme strukturoitavaa avainsanaa.
- Rakenteeseen osoittavat osoittimet luodaan samalla tavalla kuin tavallisiin tyyppeihin osoittavat osoittimet.
- Rakenne voidaan välittää argumenttina funktiolle samalla tavalla kuin tavalliset funktiot.