C ++ konstruktører og destruktører

C ++ konstruktører og destruktører
I C ++ er konstruktør et sterkt trekk i en klasse. Vi vet at vi i C ++ pleide å lage forskjellige klasser. I klasser bruker vi den til å lage en funksjon. Så konstruktør er en spesiell type medlemsfunksjon.

Destructor er også en funksjon av en klasse i C++. Som konstruktørdestruktor har også noen spesielle funksjoner. Nå diskuterer vi både konstruktør og destruktør i emnet vårt.

Grunnleggende egenskaper ved konstruktør:

  1. Konstruktør har en unik funksjon: både klassenavn og konstruktørnavn må være det samme.
  2. Konstruktør har ingen returtype som normal funksjon. Så vi kan ikke bruke noe returnøkkelord inne i konstruktøren.
  3. Konstruktør oppfører seg som en funksjon, men den skiller seg fra en normal funksjon.

Nå skriver vi et program, hvordan lage en konstruktør i en klasse.

Programmering Eksempel 1:

#inkludere
ved hjelp av navneområdet STD;
Klassekompleks

privat:
int x, y;
offentlig:
Complex () // Lag en konstruktør i klassen.

cout<< “ Example of a Constructor \n ” ;

;
int main ()

Kompleks com;
retur 0;

Produksjon:

Forklaring:

Her lager vi en klasse som heter Complex. Vi erklærer to variabler, X og Y, under den private tilgangsmodifisereren. Så oppretter vi en konstruktør i en offentlig modifiserer som ligner på klassenavnet. Her skriver vi ikke noe returnøkkelord for konstruktøren.

Konstruktør kalles implisitt. Når et objekt får minnekonstruktør, kjøres som standard.

Klassifisering av konstruktøren:

Det er tre typer konstruktører tilgjengelig i C++. De er

  1. Misligholde.
  2. Parameterisert.
  3. Kopiere.

en. Standard konstruktør:

Hver gang vi ikke lager noen konstruktør for en klasse og oppretter et objekt for den klassen, kalles konstruktøren implisitt av kompilatoren. Den typen konstruktør kalles standardkonstruktøren. Den har en spesiell funksjon. Det er ingen kode inne i kroppen, og det tar ingen parametere.

Programmering Eksempel 2:

#inkludere
ved hjelp av navneområdet STD;
Klassekompleks

Privat:
int a, b;
offentlig:
;
tomrom ()

Kompleks com;

Produksjon:
Ettersom dette programmet ikke har noen utgangserklæring, har det ingen utgang.

Forklaring:

Her lager vi et klassekompleks. Inne i den komplekse klassen lager vi ingen konstruktør. Men inne i hoved (), når vi oppretter et objekt som heter COM, oppretter kompilatoren en standardkonstruktør i objektfilen. Det kalles standardkonstruktøren. Denne typen konstruktør har ingen koding i kroppen.

b. Parameterisert konstruktør:

Hvis vi ønsker å gi noen argumenter inne i konstruktøren, kalles det en parameterisert konstruktør.

Programmering Eksempel 3:

#inkludere
ved hjelp av navneområdet STD;
Klassekompleks

privat:
int a, b;
offentlig:
Kompleks (int x, int y) // Lag en parameterisert konstruktør.

a = x;
b = y;
cout<< “ The values of a and b are”
<;
int main ()

Kompleks com (3, 4);
retur 0;

Produksjon:

Forklaring:

Ovennevnte kode er et eksempel på en parameterisert konstruktør. Her passerer vi to heltall som argumenter X og Y inne i den komplekse konstruktøren. Hvis vi passerer noen verdier som 3 og 4 inne i COM -objektet som com (3, 4) fra hovedfunksjonen, går den verdien til konstruktøren.

c. Kopier konstruktør:

Når ett klasseobjekt kopieres til et annet objekt i samme klasse, kalles det en kopikonstruktør. Det betyr at begge objektene har samme verdi av samme klasse.

Programmering Eksempel 4:

#inkludere
Klasseeksempel

int x, y;
offentlig:
Eksempel (int a, int b) // Opprett en konstruktør i klassen.

x = a;
y = b;

void display ()

cout << “ The values are : ”
<< x << “ and” << y ;

;
tomrom ()

Eksempel EX1 (50, 60);
Eksempel Ex2 = com1;
ex2.vise() ;

Produksjon:

Forklaring:

Her lager vi et parameterisert konstruktørnavnkompleks. EX1 er et objekt i klasseeksemplet. Gjennom EX1 -objektet passerer vi to verdier, 50 og 60. I display () vil utgangen bli vist på 50 og 60.

Nå kopierer vi verdien av Ex1 til et annet objekt, ex2. Resultatet vil være det samme hvis vi kaller Display () -funksjonen gjennom EX2 -objektet.

Destructor:

En destruktør er en annen kraftig funksjon som konstruktøren av en klasse. Navnet vil være det samme som navnet på klassen som vi så i konstruktøren tidligere. Men et symbol som heter Tilde (~) skilles en destruktør fra en konstruktør i koding.

Den har heller ingen returtype som konstruktør og kan aldri være statisk.
Hovedforskjellen mellom konstruktør og destruktør er at destruktøren ikke tar noen argumenter som konstruktøren. Det betyr at overbelastning ikke er mulig for en destruktør.

Programmering Eksempel 5:

#inkludere
ved hjelp av navneområdet STD;
Klassekompleks

privat:
int a, b;
offentlig:
~ Complex () // Lag en destruktør i klassen.

cout<< “ Example of a Destructor\n ” ;

;
ugyldig moro ()

Kompleks des; // å lage objektet i klassen

int main ()

moro ();
retur 0;

Produksjon:

Forklaring:

Her oppretter vi et destruktørnavnkompleks under den komplekse klassen. Nå må vi vite hva grunnen til at vi bruker Destructor er. Destructor påberopes implisitt av kompilatoren når et objekt vil ødelegge. Det er en misforståelse at destruktører ødelegger minnet om objektet. Faktum er at destruktør er den siste metoden som kjører. Etter at objektet er sikkert å bli ødelagt, noe som betyr i Main () Når moroa () kjøres, må objektet ødelegges.

Konklusjon:

Etter å ha diskutert konseptet konstruktør og destruktør, vil vi konkludere med at konstruktør og destruktør er viktige medlemsfunksjoner i klassen i C++. Både konstruktør og destruktor forbedrer funksjonene i klassen veldig effektivt.