C ++ klasse konstruktører

C Class Constructors



Konstruktører er som funktioner. Disse bruges til at initialisere værdierne og objekterne i klassen. Disse konstruktører initieres, når objektet for en klasse oprettes. Constructor returnerer ikke nogen værdi direkte. For at få konstruktorens værdi skal vi beskrive en separat funktion, da konstruktøren ikke har nogen returtype. Constructor adskiller sig fra den simple funktion på forskellige måder. En konstruktør oprettes, når objektet genereres. Det er defineret i det offentlige segment i klassen.

I denne artikel vil vi overveje alle disse typer konstruktører med eksempler.







Eksempel 1

Dette er en illustration af en standardkonstruktør. Som vi ved, er konstruktørerne som standard oprettet automatisk, når vi opretter et objekt i en klasse. Dette kaldes implicit skabelse. Konstruktører har samme navn, som er klassens navn. Overvej en fil med konstruktørens c ++ - kode, da vi ved, at klassen har to muligheder, privat og offentlig. Den private del indeholder datavariablerne, hvorimod den offentlige del er til de funktioner, der hentes af ethvert objekt. Så konstruktøren er også defineret i den offentlige del.



Heltal()

{

x=halvtreds;

og=tyve;

};

I denne konstruktor tildeles værdier til variablerne. Hvis vi vil hente værdierne som output, skal vi udskrive dem i hovedprogrammet.







Efter at have defineret konstruktøren lukkes klassen. Mens vi går ind i hovedprogrammet, vil vi udskrive værdierne ved hjælp af et objekt. Objektet får altid adgang til konstruktører, da disse er delene af klassen. Objektoprettelse er så enkel. Det gøres ved at introducere det med klassens navn. Det er et helt tal i dette eksempel. Værdien hentes via dot -metoden. dvs. a.x.

Vi kan se output fra kildekoden fra terminalen i Ubuntu. Metoden, der bruges til at få output, er ret let. Først kompileres koden, og derefter udføres den. Vi bruger G ++ - kompilatoren til kompileringsprocessen. Ligesom i tilfælde af C bruger vi GCC.



$ G++ -eller filec filec.c

./filec

-O bruges til at gemme output i filen.

Eksempel 2

I denne illustration vil vi forklare de parameteriserede konstruktører. I modsætning til det foregående eksempel kan vi også videregive argumenterne til konstruktørerne fra hovedprogrammet. Når objektet genereres, overføres disse værdier automatisk til variablerne i konstruktøren for at modtage værdien. Nogle af anvendelserne af parameteriserede konstruktører er.

  • Det bruges til at initialisere forskellige variabler med forskellige værdier inde i konstruktørerne, når det initialiseres.
  • Det bruges til konstruktøroverbelastning. Det er defineret senere i artiklen.

Lad os nu overveje den illustration, vi har beskrevet for at uddybe dette koncept. Klassen har navnet heltal, så bestemt vil konstruktørens navn også være det samme. I konstruktørens parametre er der to heltalsværdier. Disse initialiseres for at acceptere de værdier, der sendes fra hovedprogrammet som et funktionsopkald.

Heltal( intx,intog)

{

TIL=x;

B=og;

};

I det foregående eksempel fik variablerne inde i konstruktøren værdierne. Mens der i denne konstruktør tildeles variabler med variablerne, der har værdien.

Hvis vi vil vise, skal vi definere en funktion, der returnerer værdien, da det ikke er muligt at få adgang til den initialiserede variabel direkte fra konstruktøren.

intgetX()

{

Vend tilbagetil;

};

Nu vil vi se hoveddelen af ​​programmet. Her når objektet er oprettet, kan du se værdierne i parameterafsnittet.

Heltal v(70,55); {implicit}

heltal v=heltal(10,femten); {eksplicit}

Og for at vise resultatet kalder vi de funktioner, der er oprettet inde i klassen ved hjælp af objektet. dvs. v.getx ().

Metoden til registrering af post er den samme som introduceret før.

Eksempel 3

Dette eksempel omhandler kopiering af en konstruktør af en klasse. En kopieret konstruktør bruges til at initialisere objektet med et andet objekt af en lignende klasse, det tilhører. Denne konstruktør kopierer dataene i et objekt til det andet. Parametrene for denne konstruktør indeholder adressen på et objekt i klassen. Overvej de givne eksempler, hvor vi har introduceret to variabler af de samme datatyper, så disse kan få adgang til enhver funktion i klassen. Konstruktøren modtager værdierne gennem variablen. Samtidig modtager den kopierede konstruktør kun objektet. Og ved hjælp af dette objekt vil værdierne blive hentet.

Væg(væg&obj)

{

Længde=obj.længde;

Højde=obj.højde;

}

Vi skal beregne areal, så funktionen til denne beregning er defineret her. Dette vil returnere værdien til hovedfunktionen, når den kaldes. Nu vil vi observere hovedprogrammet for koden

Funktionskaldet til den kopierede konstruktør vil være sådan.

Vægvæg 2=væg 1;

Objektet kalder den kopierede konstruktør, og dataene gennem det første objekt kopieres igennem det. Desuden vil vi kalde funktionen til at beregne areal gennem begge objekter.

Fra output kan du se, at resultatet fra begge konstruktører er det samme. Det betyder, at alle data blev kopieret af objektet med succes.

Eksempel 4

Dette er en illustration af konstruktøroverbelastning. Det sker, når vi skal bruge mere end en enkelt funktion inde i klassen. Konstruktøroverbelastning følger instruktionerne fra parameteriserede konstruktører. Alle konstruktører i klassen har et lignende navn som klassen. Men hver af konstruktørerne tildeles forskellige parametre. Hver konstruktør kaldes i henhold til argumentet, når vi opretter objektet.

Overvej det givne eksempel, hvor vi har brugt tre konstruktører. Den ene er uden nogen argumenter. Det andet er med et enkelt argument, mens det tredje er med to argumenter. Denne illustration ligner den foregående. Når vi beregner areal i den separate funktion, der er beskrevet inde i klassen.

// Konstruktør med to argumenter

form(intx,intog)

{

til=x;

b=og;

};

Når vi bevæger os mod hovedprogrammet, kan vi se, at når vi starter klasseobjektet, kaldes konstruktøren uden argument som standard. Nu skal vi kalde andre konstruktører med forskellige objekter, der har forskellige argumenter.

Form s;

Form s2(8);

Form s3(4,2);

Funktionen, hvorigennem vi kan vise værdien, kaldes gennem det samme objekt, der er oprettet.

For at se output vil vi bruge den samme kommandoterminalmetode ved at kompilere og eksekvere koden, der er til stede i filen.

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

Konklusion

I denne vejledning har vi set det grundlæggende i konstruktører og deres funktionaliteter, herunder hvordan man overbelaster dem. Konstruktører bruges til at initialisere variablerne med værdierne.