Konstruktor i destruktor u C ++ - Potrebe, upotrebe sa sintaksom i primjerima

Sadržaj:

Anonim

Uvod o konstruktoru i destruktoru u C ++

  • Konstruktor i Destruktor u C ++ igra značajnu ulogu u objektno programskom jeziku poput C ++. Kako u C ++ imamo klase i njene objekte tijekom kreiranja novog objekta, svaki put kada se konstruktor može upotrijebiti za inicijalizaciju objekta, dok se objekt želi uništiti destruktor može se koristiti za izvođenje potrebnih postupaka.
  • Kad kreiramo objekt klase u C ++, možda ćemo htjeti inicijalizirati polja klase s nekim zadanim ili određenim vrijednostima. Razred ima svoja polja i metode. Polja su uglavnom varijable ili objekti. Dodjeljivanjem zadanih vrijednosti ovim poljima olakšavamo programiranje. Konstruktor je kao normalna funkcija unutar klase i prevoditelj ga automatski poziva kada stvorimo novi objekt te klase. Prilikom stvaranja objekta mi zapravo prosljeđujemo potrebne vrijednosti kao argument objektu, ti argumenti se prosljeđuju konstruktoru klase. Vrijednosti argumenata sada se mogu dodijeliti odgovarajućim poljima koja su dostupna u klasi. Pored toga, možemo dodijeliti zadane vrijednosti poljima u kojima ne prenosimo argumente. Postoje takvi različiti tipovi i načini na koje inicijaliziramo konstruktor u C ++.
  • Konstruktor je poput posebnog člana klase. Kad god stvorimo novi objekt konstruktor se izvršava. Sintaksa konstruktora vrlo je jednostavna, funkcija će imati isti naziv kao i klasa u kojoj je definirana i neće imati povratni tip, čak ni nevažeći. Konstruktori su vrlo korisni u dodjeljivanju određenih vrijednosti određenim članovima klase. Konstruktor se može koristiti za izvođenje logike povezane s klasom u trenutku pronalaska.

Sintaksa konstruktora

class Box (
public:
int height;
//constructor
Box () (
// member initialization
)
)

Destruktor u C ++ također je posebna funkcija članova u klasi. Destruktor automatski zove kompajler i izvodi se kad god predmet te klase izađe iz područja obuhvata ili se obriše koristeći izraz express na pokazivaču tog objekta. Kad god predmet uništi prevodilac, poziva se destruktor. U destruktoru možemo izvoditi izjave koje mogu biti išta što želimo izvesti kad objekt izađe iz okvira. Post-operacije poput zatvaranja veza, zatvaranja datoteka itd. Neki su od primjera koje možemo izvesti u destruktoru.

Sintaksa destruktora

class Box (
public:
int height;
//destructor
~Box () (
// post statements
)
)

Sintaksa destruktora vrlo je slična konstruktoru. Imat će isto ime kao i klasa u kojoj je definirana i neće imati vrstu povratka. Međutim, upravo će on imati znak ~ (tilde) prije naziva destruktora. Destruktor se obično koristi za raspoređivanje dinamički raspoređene memorije za klasu i njezine članove. Destruktori su vrlo korisni za izvođenje postupaka koji se mogu izvoditi po poslovnoj logici.

Zašto su nam potrebni Konstruktor i Destruktor na C ++?

C ++ je objektno orijentirani programski jezik. U bilo kojem objektno programskom jeziku mapiramo izvorne cjeline iz stvarnog života s klasom i objektima.

Shvatimo zašto su nam potrebni konstruktor i destruktor na C ++ primjerom iz stvarnog života. Pretpostavimo da imamo entitet Box i za njega smo stvorili klasu, a on će imati objekte koji se mogu koristiti u drugim dijelovima. Sada će okvir imati određene parametre kao što su visina, dužina, širina itd. I kad god kreiramo objekt klase Box, želimo da on uzme neku zadanu vrijednost. Recimo za visinu, ovaj se cilj može postići dodjeljivanjem određene zadane vrijednosti visini u konstruktoru te klase. Slično se za ostale parametre mogu dodijeliti i vrijednosti. Nakon korištenja objekta Box recimo da odmah želimo određenu akciju ili nazovimo neku funkciju. To se može učiniti pomoću Destruktora u C ++. Tražene izjave bit će dodane destruktoru te klase. Ovo su stvarne prednosti stvaranja konstruktora i destruktora u C ++.

Kako konstruktori i destruktori rade na C ++?

Kao što je ranije spomenuto, prevoditelj poziva graditelj svaki put kada se kreira objekt. Ako ne definiramo konstruktora, C ++ prevoditelj automatski generira zadani konstruktor za nas. Konstruktor se koristi za raspoređivanje memorije ako je potrebno i za izgradnju klase objekta dok se destruktor koristi za potrebno čišćenje kada uništi objekt. Kompilator automatski poziva destruktor kad uništi objekt. Ako ne definiramo vlastiti destruktor, C ++ prevoditelj stvara zadani destruktor.

Izrada Konstruktora i Destruktora u C ++? (Primjeri)

1. Konstruktorski primjer

Uzmimo isti primjer klase Box za deklariranje konstruktora. Dodijelimo neke zadane vrijednosti visini i težini okvira.

Kodirati

class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
)

Dakle, kad god se stvori objekt ove klase, on će vratiti objekt tipa Box sa zadanim vrijednostima definiranim gore.

2. Primjer destruktora

Kad god će objekt okvira izaći iz okvira, ispisat ćemo neki tekst na konzoli u našem primjeru. Zapravo kodiranje može biti izvršena bilo koja određena aktivnost.

Kodirati

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;
)
)

Dakle, kad god objekt Box izađe izvan dosega, prevoditelj će na konzoli ispisati tekst kako je gore definirano.

Zaključak

Dakle, Constructor i Destructor igraju važnu ulogu u objektno programskom jeziku. Konstruktor se koristi za inicijalizaciju objekta, a destruktor se koristi za njegovo uništavanje. I konstruktor i destruktor vrlo su korisni za programiranje na jeziku C ++.

Preporučeni članci

Ovo je vodič za Konstruktor i Destruktor na C ++. Ovdje smo raspravljali o potrebama Konstruktora i Destruktora u C ++, načinu korištenja, različitim sintaksama i primjerima. Možete i proći kroz naše druge povezane članke da biste saznali više -

  1. C ++ funkcije matrice
  2. Kopiraj konstruktor u C ++
  3. Uvod u C ++
  4. Vrste konstruktora u C
  5. Vodič za destruktora u C #
  6. Destruktor u PHP-u s primjerima