Johdatus kopiointirakentajaan C ++: ssa

Ohjelmointikielet tarjoavat meille erilaisia ​​ominaisuuksia, joita voidaan hyödyntää sovelluksen kehittämisessä. Keskitason kielten ominaisuudet saattavat olla vähemmän verrattuna korkean tason kieliin, mutta niiden tarjoamista vaihtoehdoista huolimatta on runsaasti merkittävien sovellusten kehittämistä. Tässä osassa opitaan kopiorakentajia. Rakentaja voidaan määritellä erikoisfunktioksi, jolla on sama nimi kuin sillä luokalla, johon on määritelty. Rakentaja kutsutaan automaattisesti, kun kyseisen luokan objekti alustetaan. Voitaisiin sanoa, että objektin alustaminen, jos luokka implisiittisesti kutsuu rakentajaa. Jos rakentaja on ylikuormittunut, siinä tapauksessa arvot on välitettävä yhdessä objektin kanssa alustettaessa sitä. Täällä opiskelemamme rakennustyyppi on hyvin ainutlaatuinen ja tunnetaan kopiorakentajana. Tämä rakentaja käyttää muita objekteja normaaliarvojen sijasta.

Kuinka Copy Constructor toimii C ++: ssa?

Kopiointirakentaja voidaan määritellä erityyppiseksi rakentajaksi, jota käytetään objektin ilmoittamiseen ja saman alustamiseen muilla objekteilla. Normaali rakentaja kutsui, kun luokan kohde alustetaan. Jos rakentaja on ylikuormitettu useilla parametreilla kuin objektin alustaminen ja saman määrän argumenttien läpikäynti, kutsutaan ylikuormitusparametriksi. Koska kopiointirakentaja on ylikuormitettu, niin sitä voidaan kutsua, kun objekti alustetaan argumentilla ja argumentin on läpäistävä objektiarvo normaalin arvon sijasta.

Kun ylikuormitetun rakentajan parametrin vastaanottama arvo on löydetty objekti, kopiorakentaja kutsutaan ja kopiorakentajassa määritelty joukko lauseita alkaa suorittaa. Ennen kopiorakentajan käyttämistä meidän on luotava saman luokan objekti. Siinä esitetään selkeästi lähestymistapa, jonka mukaan jokaisella ohjelmalla, joka on tarkoitettu kopiointirakentajan toteuttamiseen, tulisi myös olla oletus- tai parametrisoitu rakentaja, jotta objekti voidaan luoda, mikä auttaa kopiointirakentajan osallistumisessa.

Kokonaisskenaariota voidaan pitää hyödyntämällä yhtä objektia toisen objektin luomiseksi. Kaikki objektin kanssa sidotut arvot, joita käytetään objektin alustamiseen kopiointirakentajan avulla, allokoidaan vasta alustetulle objektille. Tämä tarkoittaa, että jos jokin muuttuja käyttää ensimmäistä objektia, samaa muuttujaa voi käyttää objekti, jonka kopiointirakentaja alkaa. Kopiointirakentajan ominaisuutta pidetään erittäin tärkeänä, ja se tekee kehityksestä erittäin kätevän joihinkin sovelluksiin. Sen ominaisuudet käyttää saman luokan kohdeviittausta auttavat kehittämään sovellusta, jolla on vaatimus, joka voidaan täyttää vain kopiointirakentajalla. Vaikka sitä ei käytetä niin usein kuin oletus- tai parametroitua rakentajaa, sillä on runsaasti voimaa myötävaikuttaa uuden toiminnallisuuden lisäämiseen sovellukseen.

esimerkki

Ymmärretään kopiorakentajan käsite esimerkin avulla. Työskentelemme tässä yksinkertaisen esimerkin parissa, joka näyttää sinulle, kuinka kopiointirakentaja toimii ja miten se voi käyttää arvoja, jotka on sidottu objektiin, jolla kopiointirakentaja on luonut uuden objektin. Alla oleva kuva antaa sinulle kuvan siitä, miten on erilaista kutsua kopiokonstruktoria verrattuna normaalin ylikuormitetun konstruktorin kutsuun.

Ohjelmoida

#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )
#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )

Tässä ohjelmassa olemme kutsuneet parametroitua rakentajaa ohittamalla argumentin a1: n kautta. Kulunut arvo on kokonaisluku, koska parametrisoitu rakentaja on määritelty hyväksymään vain kokonaisluku. Kun arvo 50 välitetään konstruktorille, arvo on annettu muuttujalle nimeltään var. Sitten objekti a1 on siirretty kopiorakentajalle a2: n kautta. Kun kohdeviite on vastaanotettu kopiorakentajalla, se sitoi ensimmäiselle objektille osoitetun arvon vasta muodostetun objektin kanssa. Tämä on yksinkertainen esimerkki selittääksesi kopiorakentajan käsitteen. Sitä voidaan käyttää useissa muissa ohjelmissa sovelluksen eri toimintojen saamiseksi.

lähtö:

60

Säännöt ja määräykset kopiosuunnittelijalle C ++: ssa

Kopiointirakentajaa pidetään vähän erilaisena kuin oletus- tai parametroitu rakentaja. Toisaalta, kun normaali rakentaja toimii käyttämällä yhteisen tietotyypin arvoa, toisaalta kopiorakentaja toimii samalla luokan aikaisemmin luodulla objektilla. Asia, joka on varmistettava kopiointirakentajaa käytettäessä, on, että kopiointirakentajan läpi kuljettuja parametreja tulisi käyttää yhdessä ampersand (&) -merkin kanssa, koska se on erikoismerkki, jota käytetään objektiviittauksen pitämiseen. Jos ampersandia ei käytetä kopiointirakentajan toteuttamisen aikana, se ei enää ole kopiorakentaja, mutta sitä pidetään automaattisesti parametroiduna rakentajana.

Kun kyse on kopiointirakentajan kutsumisesta, meidän on varmistettava, että argumentteina välitetyssä arvossa tulisi olla objektiviittaus kuin mikä tahansa yhteiseen tietotyyppiin kuuluva arvo. Nämä ovat muutamia asioita, jotka on otettava huomioon erittäin tarkasti, kun kopiointirakentaja asennetaan C ++ -ohjelmointikielellä. Joka kerta kun käytämme kopiorakentajaa, meidän on myös varmistettava, että erottelemme sen oikein parametrisoidusta rakentajasta, koska tämän epäonnistuminen muuttaa täysin ohjelman toimivuutta ja johtaa väärään tulostukseen.

johtopäätös

Kopiokonstruktoria pidetään erityyppisenä konstruktorina, joka toimii saman luokan kohdeviittauksella. Sitä käytetään useiden toimintojen tuomiseen sovellukseen. Jos verrataan oletuskonstruktoriin, kopiointirakentajaa ei käytetä kovin usein yksinkertaisissa ohjelmissa, mutta kun kyse on monimutkaisten sovellusten kehittämisestä, jotka on otettava käyttöön tuotantoympäristössä, kopiointirakentajaa käytetään siellä ja se tekee sovelluskehityksestä myös varsin kätevän .

Suositellut artikkelit

Tämä on opas kopiointirakentajiin C ++: ssa. Tässä keskustellaan johdannosta ja siitä, kuinka kopiointirakentaja toimii C ++ -järjestelmässä, samoin kuin säännöistä ja määräyksistä kopiointirakentajalle C ++: ssa. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Kopioi rakentaja Java
  2. Kopioi rakentaja C #: ssä
  3. Rakentaja C ++: ssa
  4. Konstruktorin käyttö C: ssä
  5. C #: n konstruktorityypit koodin toteutuksella