C ++ -luokan rakentajat

C Class Constructors



Konstruktorit ovat kuin toimintoja. Niitä käytetään luokan arvojen ja objektien alustamiseen. Nämä konstruktorit käynnistetään, kun luokan objekti luodaan. Rakentaja ei suoraan palauta arvoa. Jotta saisimme konstruktorin arvon, meidän on kuvattava erillinen toiminto, koska konstruktorilla ei ole palautustyyppiä. Konstruktori eroaa yksinkertaisesta toiminnosta eri tavoin. Konstruktori luodaan, kun objekti luodaan. Se määritellään luokan julkisessa segmentissä.

Tässä artikkelissa keskustelemme kaikentyyppisistä rakentajista esimerkeillä.







Esimerkki 1

Tämä on esimerkki oletusrakentajasta. Kuten tiedämme, konstruktorit luodaan oletusarvoisesti automaattisesti, kun luomme luokan objektin. Tätä kutsutaan implisiittiseksi luomiseksi. Rakenteet ovat samannimisiä kuin luokan nimi. Harkitse tiedostoa, jossa on konstruktorin c ++ -koodi, koska tiedämme, että luokalla on kaksi vaihtoehtoa, yksityinen ja julkinen. Yksityinen osa sisältää datamuuttujat, kun taas julkinen osa on minkä tahansa objektin noutamille toiminnoille. Rakentaja on siis määritelty myös julkisessa osassa.



Kokonaisluku()

{

x=viisikymmentä;

ja=kaksikymmentä;

};

Tässä konstruktorissa muuttujille määritetään arvot. Jos haluamme hakea arvot tulostuksena, meidän on tulostettava ne pääohjelmassa.







Konstruktorin määrittämisen jälkeen luokka suljetaan. Pääohjelmaan tullessamme tulostamme arvot käyttämällä objektia. Objekti käyttää aina konstruktoreita, koska ne ovat luokan osia. Objektin luominen on niin yksinkertaista. Se tehdään lisäämällä siihen luokan nimi. Tämä on kokonaisluku tässä esimerkissä. Arvo haetaan pisteellä. eli a.x.

Voimme nähdä lähdekoodin ulostulon Ubuntun päätelaitteesta. Tuloksen saamiseksi käytetty lähestymistapa on melko helppo. Ensin koodi kootaan ja sitten suoritetaan. Käytämme kokoamiseen G ++ -kääntäjää. Aivan kuten C: n tapauksessa, käytämme GCC: tä.



$ G++ -tai filec filec.c

./filec

-O käytetään tulosteen tallentamiseen tiedostoon.

Esimerkki 2

Tässä kuvassa selitämme parametroidut konstruktorit. Toisin kuin edellinen esimerkki, voimme myös välittää argumentit pääohjelman rakentajille. Kun objekti luodaan, nämä arvot välitetään automaattisesti rakenteen muuttujille arvon vastaanottamiseksi. Jotkut parametroitujen konstruktorien käyttötarkoitukset ovat.

  • Sitä käytetään alustamaan erilaisia ​​muuttujia, joilla on erilaiset arvot konstruktorien sisällä, kun se alustetaan.
  • Sitä käytetään konstruktorin ylikuormituksessa. Se määritellään myöhemmin artikkelissa.

Tarkastellaan nyt kuvaa, jonka olemme kuvanneet tämän käsitteen kehittämiseksi. Luokalla on nimi kokonaisluku, joten ehdottomasti myös rakentajan nimi on sama. Konstruktorin parametreissa on kaksi kokonaislukutyyppiarvoa. Nämä alustetaan hyväksymään arvot, jotka lähetetään pääohjelmasta funktiokutsuna.

Kokonaisluku( intx,intja)

{

TO=x;

B=ja;

};

Edellisessä esimerkissä rakenteen sisällä oleville muuttujille annettiin arvot. Tässä konstruktorissa muuttujille osoitetaan muuttujat, joilla on arvo.

Jos haluamme ottaa näytön käyttöön, meidän on määritettävä funktio, joka palauttaa arvon, koska alustusmuuttujaa ei voida käyttää suoraan konstruktorilta.

intgetX()

{

palatakohteeseen;

};

Nyt näemme ohjelman pääosan. Täällä, kun objekti on luotu, näet parametriosan arvot.

Kokonaisluku v(70,55); {implisiittinen}

kokonaisluku v=kokonaisluku(10,viisitoista); {selkeä}

Ja tuloksen näyttämiseksi kutsumme luokan sisällä luodut funktiot objektin avulla. eli v.getx ().

Tietueen noutomenetelmä on sama kuin aiemmin.

Esimerkki 3

Tämä esimerkki käsittelee luokan konstruktorin kopiointia. Kopioitua konstruktoria käytetään alustamaan objekti toisella saman luokan objektilla, johon se kuuluu. Tämä konstruktori kopioi yhdessä objektissa olevat tiedot toiseen. Tämän konstruktorin parametrit sisältävät luokan objektin osoitteen. Harkitse annettuja esimerkkejä, joissa olemme ottaneet käyttöön kaksi muuttujaa, joilla on sama tietotyyppi, jotta ne voivat käyttää mitä tahansa luokan funktiota. Rakentaja vastaanottaa arvot muuttujan kautta. Samaan aikaan kopioitu konstruktori vastaanottaa vain objektin. Ja tämän objektin avulla arvot haetaan.

Seinä(seinään&obj)

{

Pituus=obj.pituus;

Korkeus=obj.korkeus;

}

Meidän on laskettava pinta -ala, joten tämän laskennan funktio määritellään tässä. Tämä palauttaa arvon päätoimintoon, kun sitä kutsutaan. Seuraamme nyt koodin pääohjelmaa

Kopioidun konstruktorin funktion kutsu on tällainen.

Seinäseinä 2=seinä 1;

Objekti soittaa kopioidulle konstruktorille, ja ensimmäisen objektin tiedot kopioidaan sen kautta. Lisäksi kutsumme funktiota laskemaan alueen molempien objektien läpi.

Lähdöstä voit nähdä, että molempien konstruktorien tulos on sama. Se tarkoittaa, että objekti on kopioinut kaikki tiedot onnistuneesti.

Esimerkki 4

Tämä on esimerkki konstruktorin ylikuormituksesta. Se tapahtuu, kun meidän on käytettävä enemmän kuin yhtä funktiota luokan sisällä. Rakentajan ylikuormitus noudattaa parametroitujen konstruktorien ohjeita. Kaikilla luokan rakentajilla on sama nimi kuin luokalla. Mutta jokaiselle rakentajalle on määritetty eri parametrit. Jokainen konstruktori kutsutaan argumentin mukaan, kun luomme objektin.

Tarkastellaan annettua esimerkkiä, jossa olemme käyttäneet kolmea konstruktoria. Yksi on ilman argumentteja. Toinen on yhdellä argumentilla, kun taas kolmas sisältää kaksi argumenttia. Tämä kuva on samanlainen kuin edellinen. Kun laskemme alueen luokan sisällä kuvatussa erillisessä funktiossa.

// Rakentaja kahdella argumentilla

muoto(intx,intja)

{

kohteeseen=x;

b=ja;

};

Siirryttäessä kohti pääohjelmaa voimme nähdä, että kun aloitamme luokkaobjektin, rakentajaa ilman argumenttia kutsutaan oletuksena. Nyt meidän on kutsuttava muita konstruktoreita, joilla on erilaisia ​​objekteja ja joilla on erilaisia ​​argumentteja.

Muodot;

Muoto s2(8);

Muoto s3(4,2);

Funktio, jonka kautta voimme näyttää arvon, kutsutaan saman luodun objektin kautta.

Tuloksen tarkastelemiseksi käytämme samaa komentopäätteen menetelmää kokoamalla ja suorittamalla tiedostossa oleva koodi.

Tuloksesta voimme nähdä, että vastaus on sama jokaiselle rakentajalle.

Johtopäätös

Tässä opetusohjelmassa olemme nähneet rakentajien perusteet ja niiden toiminnot, mukaan lukien kuinka ylikuormittaa niitä. Konstruktoreita käytetään alustamaan muuttujat arvoilla.