Introduksjon om konstruktør og ødelegger i C ++
- Constructor and Destructor in C ++ spiller en betydelig rolle i et objektorientert programmeringsspråk som C ++. Som vi har Class and Its-objekter i C ++ mens vi oppretter det nye objektet hver gang konstruktør kan brukes til å initialisere objektet, mens når objektet er i ferd med å ødelegge destructor kan brukes til å utføre de nødvendige postoperasjonene.
- Når vi oppretter et objekt av en klasse i C ++, kan det være lurt å initialisere felt i klassen med noen standardverdier eller visse verdier. En klasse har sine felt og metoder. Felt er stort sett variabler eller objekter. Ved å tilordne standardverdier til disse feltene, gjør vi programmeringen vår enkel. Konstruktøren er som normal funksjon i klassen, og kompilatoren kaller den automatisk når vi oppretter et nytt objekt av den klassen. Mens vi oppretter objektet, passerer vi de nødvendige verdiene som et argument til objektet, blir disse argumentene ført til konstruktøren av klassen. Argumentverdiene nå kan tilordnes til tilsvarende felt, som er tilgjengelige i klassen. I tillegg kan vi tilordne standardverdier til feltene der vi ikke overfører argumentene. Det er så forskjellige typer og måter vi initialiserer konstruktøren i C ++.
- Konstruktøren er som en spesiell medlemsfunksjon i en klasse. Hver gang vi oppretter et nytt objekt blir konstruktøren utført. Syntaksen til en konstruktør er veldig enkel, funksjonen vil ha samme navn som den i klassen den er definert i, og den vil ikke ha noen returtype, ikke engang ugyldig. Konstruktører er veldig nyttige når det gjelder tildeling av spesielle verdier til visse medlemmer av klassen. Konstruktøren kan brukes til å utføre klasserelatert logikk på øyeblikkelig tidspunkt.
Syntax of Constructor
class Box (
public:
int height;
//constructor
Box () (
// member initialization
)
)
Destruktoren i C ++ er også en spesiell medlemsfunksjon i klassen. Destruktoren kalles automatisk av kompilatoren og blir henrettet når objektet til den aktuelle klassen går ut av omfanget, eller den slettes ved å bruke slettuttrykk til pekeren til det objektet. Hver gang gjenstanden blir ødelagt av en kompilator, blir destruktoren kalt. I destructor kan vi utføre utsagn som kan være alt vi vil utføre når objektet går ut av omfanget. Etteroperasjonene som å lukke forbindelser, lukke filer osv. Er noen av eksemplene som vi kan utføre i destruktoren.
Syntax of Destructor
class Box (
public:
int height;
//destructor
~Box () (
// post statements
)
)
Destruktorens syntaks ligner veldig på konstruktøren. Det vil ha samme navn som klassen der den er definert og har ingen returtype. Imidlertid vil bare det ha ~ (tilde) -skilt før ødeleggernavnet. Vanligvis brukes ødeleggeren til å fordele det dynamisk tildelte minnet til klassen og dens medlemmer. Destruktorene er veldig nyttige for å utføre postoperasjoner, som kan utføres etter forretningslogikk.
Hvorfor trenger vi en konstruktør og ødelegger i C ++?
C ++ er et objektorientert programmeringsspråk. I et hvilket som helst objektorientert programmeringsspråk, kartlegger vi originale virkelighetsnære enheter med klassen og objektene.
La oss forstå hvorfor trenger vi en konstruktør og destruktør i C ++ ved et ekte eksempel. Anta at vi har entitetsboks, og vi har opprettet en klasse for den, og den vil ha objekter som også kan brukes i andre deler. Nå vil boksen ha visse parametere som høyde, lengde, bredde osv., Og når vi oppretter et objekt av klasse boks, vil vi at den skal ha en standardverdi. La oss si for høyden, dette målet kan oppnås ved å tilordne en bestemt standardverdi til høyden i konstruktøren til den klassen. Tilsvarende for andre parametere kan også verdier tilordnes. Etter å ha brukt objektet til Box, la oss si at vi vil ha noen spesielle handlinger umiddelbart eller kalle noen funksjon. Dette kan gjøres ved å bruke Destructor i C ++. De påkrevde uttalelsene vil bli lagt til ødeleggeren av den klassen. Dette er sanntidsfordelene ved å ha en konstruktør og destruktør i C ++.
Hvordan fungerer konstruktører og destruktører i C ++?
Som diskutert tidligere, blir konstruktøren tilkalt av kompilatoren når et objekt opprettes. Hvis vi ikke definerer konstruktør, genererer C ++ -kompilatoren automatisk en standardkonstruktør for oss. Konstruktøren brukes til å tildele minnet om nødvendig og konstruere objektet av klasse, mens en destruktor brukes til å utføre nødvendig opprydding når et objekt blir ødelagt. Destraktoren blir automatisk kalt av kompilatoren når en gjenstand blir ødelagt. Hvis vi ikke definerer vår egen destructor, oppretter C ++ -kompilatoren en standard destructor.
Lage konstruktør og ødelegger i C ++? (Eksempler)
1. Konstruktøreksempel
La oss ta det samme eksemplet med klasse Box for å erklære konstruktøren. La oss tilordne noen standardverdier til høyden og vekten på boksen.
Kode
class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
)
Så når objektet i denne klassen opprettes, vil det returnere objektet av typen Box med standardverdier som definert ovenfor.
2. Destruktoreksempel
Når objektet til Box går ut av omfanget, vil vi skrive ut tekst på konsollen i vårt eksempel. I faktisk koding kan det utføres noen spesifikk aktivitet.
Kode
class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
//destructor
~Box () (
// post statements
cout << “Box Object is being deleted.” << endl;
)
)
Så når objektet til Box blir utenfor omfanget, vil kompilatoren skrive ut teksten som definert over på konsollen.
Konklusjon
Så, Constructor and Destructor spiller en viktig rolle i det objektorienterte programmeringsspråket. En konstruktør brukes til å initialisere objektet, og destruktoren brukes mens du ødelegger gjenstanden. Både konstruktøren og destruktoren er veldig nyttige når du programmerer på C ++ -språket.
Anbefalte artikler
Dette er en guide til Constructor and Destructor i C ++. Her diskuterer vi behovene til Constructor og Destructor i C ++, hvordan du bruker, forskjellige syntaks og eksempler. Du kan også gå gjennom andre relaterte artikler for å lære mer-
- C ++ Array-funksjoner
- Kopier konstruktør i C ++
- Introduksjon til C ++
- Typer konstruktør i C
- Guide to Destructor in C #
- Destruktor i PHP med eksempler