C ++ klasse konstruktører

C Class Constructors



Konstruktører er som funksjoner. Disse brukes til å initialisere verdiene og objektene i klassen. Disse konstruktørene initieres når objektet for en klasse blir opprettet. Constructor returnerer ikke noen verdi direkte. For å få verdien av konstruktøren, må vi beskrive en egen funksjon ettersom konstruktøren ikke har noen returtype. Constructor skiller seg fra den enkle funksjonen på forskjellige måter. En konstruktør opprettes når objektet genereres. Det er definert i det offentlige segmentet i klassen.

I denne artikkelen vil vi diskutere alle disse konstruktortypene med eksempler.







Eksempel 1

Dette er en illustrasjon av en standardkonstruktør. Som vi vet at konstruktørene er standard opprettet automatisk når vi lager et objekt i en klasse. Dette kalles implisitt skapelse. Konstruktører har samme navn som er navnet på klassen. Vurder en fil som har c ++ - koden til konstruktøren, da vi vet at klassen har to alternativer, privat og offentlig. Den private delen inneholder datavariabler, mens den offentlige delen er for funksjonene som hentes av et hvilket som helst objekt. Så konstruktøren er også definert i den offentlige delen.



Heltall()

{

x=femti;

og=tjue;

};

I denne konstruktøren tildeles verdiene variablene. Hvis vi ønsker å hente verdiene som en utgang, må vi skrive dem ut i hovedprogrammet.







Etter å ha definert konstruktøren, lukkes klassen. Når vi går inn i hovedprogrammet, tar vi ut verdiene ved å bruke et objekt. Objektet får alltid tilgang til konstruktører ettersom dette er delene av klassen. Det er så enkelt å lage objekter. Det gjøres ved å introdusere det med navnet på klassen. Det er et heltall i dette eksemplet. Verdien hentes gjennom prikkmetoden. dvs. a.x.

Vi kan se utdataene fra kildekoden fra terminalen i Ubuntu. Tilnærmingen som brukes for å få utgangen er ganske enkel. Først blir koden kompilert, og deretter kjøres den. Vi bruker G ++ - kompilatoren for kompileringsprosessen. Akkurat som i tilfellet C bruker vi GCC.



$ G++ -eller filec filec.c

./filec

-O brukes til å lagre utdataene i filen.

Eksempel 2

I denne illustrasjonen skal vi forklare de parameteriserte konstruktørene. I motsetning til det forrige eksemplet, kan vi også sende argumentene til konstruktørene fra hovedprogrammet. Når objektet genereres, overføres disse verdiene automatisk til variablene som er tilstede i konstruktøren for å motta verdien. Noen av bruksområdene til parameteriserte konstruktører er.

  • Den brukes til å initialisere forskjellige variabler med forskjellige verdier inne i konstruktørene når den initialiseres.
  • Det brukes i konstruktøroverbelastning. Det er definert senere i artikkelen.

La oss nå vurdere illustrasjonen vi har beskrevet for å utdype dette konseptet. Klassen har navnet heltall, så definitivt vil konstruktørens navn også være det samme. I parameterne til konstruktøren er det to heltallstypeverdier. Disse initialiseres for å godta verdiene som sendes fra hovedprogrammet som et funksjonsanrop.

Heltall( intx,intog)

{

TIL=x;

B=og;

};

I det forrige eksemplet fikk variablene inne i konstruktøren verdiene. Mens i denne konstruktøren er variabler tilordnet med variablene som har verdien.

Hvis vi ønsker å vise, må vi definere en funksjon som returnerer verdien da det ikke er mulig å få tilgang til den initialiserte variabelen direkte fra konstruktøren.

intgetX()

{

komme tilbaketil;

};

Nå vil vi se hoveddelen av programmet. Her når objektet er opprettet, kan du se verdiene i parameterdelen.

Heltall v(70,55); {implisitt}

heltall v=heltall(10,femten); {eksplisitt}

Og for å vise resultatet, vil vi kalle funksjonene som er opprettet inne i klassen ved å bruke objektet. dvs. v.getx ().

Metoden for å hente poster er den samme som introdusert tidligere.

Eksempel 3

Dette eksemplet omhandler kopiering av en konstruktør av en klasse. En kopiert konstruktør brukes til å initialisere objektet med et annet objekt av en lignende klasse det tilhører. Denne konstruktøren kopierer dataene som er tilstede i det ene objektet til det andre. Parametrene til denne konstruktøren inneholder adressen til et objekt i klassen. Tenk på de gitte eksemplene, der vi har introdusert to variabler av de samme datatypene, slik at disse kan få tilgang til alle funksjoner i klassen. Konstruktøren vil motta verdiene gjennom variabelen. Samtidig vil den kopierte konstruktøren bare motta objektet. Og ved hjelp av dette objektet vil verdiene bli hentet.

vegg(vegg&obj)

{

Lengde=obj.lengde;

Høyde=obj.høyde;

}

Vi må beregne areal, så funksjonen for denne beregningen er definert her. Dette vil returnere verdien til hovedfunksjonen når den kalles. Nå vil vi observere hovedprogrammet for koden

Funksjonskallet til den kopierte konstruktøren vil være slik.

Veggvegg 2=vegg1;

Objektet kaller den kopierte konstruktøren, og dataene gjennom det første objektet kopieres gjennom det. Videre vil vi kalle funksjonen for å beregne areal gjennom begge objektene.

Fra utgangen kan du se at resultatet fra begge konstruktørene er det samme. Det betyr at hele dataene ble kopiert av objektet.

Eksempel 4

Dette er en illustrasjon av konstruktøroverbelastning. Det skjer når vi må bruke mer enn en enkelt funksjon inne i klassen. Konstruktøroverbelastning følger instruksjonene fra parameteriserte konstruktører. Alle konstruktørene i klassen har et lignende navn som klassen. Men hver av konstruktørene tildeles forskjellige parametere. Hver konstruktør kalles i henhold til argumentet når vi lager objektet.

Tenk på det gitte eksempelet, der vi har brukt tre konstruktører. Den ene er uten noen argumenter. Den andre er med et enkelt argument, mens den tredje er med to argumenter. Denne illustrasjonen ligner den forrige. Når vi beregner areal i den separate funksjonen beskrevet i klassen.

// Konstruktør med to argumenter

form(intx,intog)

{

til=x;

b=og;

};

Når vi beveger oss mot hovedprogrammet, kan vi se at når vi starter klasseobjektet, kalles konstruktøren uten argument som standard. Nå må vi kalle andre konstruktører med forskjellige objekter som har forskjellige argumenter.

Form s;

Form s2(8);

Form s3(4,2);

Funksjonen som vi kan vise verdien gjennom kalles gjennom det samme objektet som er opprettet.

For å se utdataene bruker vi den samme kommandoterminalmetoden ved å kompilere og utføre koden som finnes i filen.

Fra utgangen kan vi se at svaret er det samme for hver konstruktør.

Konklusjon

I denne opplæringen har vi sett det grunnleggende om konstruktører og deres funksjoner, inkludert hvordan de overbelastes. Konstruktører brukes til å initialisere variablene med verdiene.