Konstruktori klase C ++

C Class Constructors



Konstruktori su poput funkcija. Oni se koriste za inicijalizaciju vrijednosti i objekata klase. Ovi konstruktori se pokreću pri stvaranju objekta klase. Konstruktor izravno ne vraća nikakvu vrijednost. Da bismo dobili vrijednost konstruktora, moramo opisati zasebnu funkciju jer konstruktor nema nikakvu vrstu povratka. Konstruktor se razlikuje od jednostavne funkcije na različite načine. Konstruktor se stvara kada se objekt generira. Definirano je u javnom segmentu klase.

U ovom ćemo članku razmotriti sve ove vrste konstruktora s primjerima.







Primjer 1

Ovo je ilustracija zadanog konstruktora. Kao što znamo da su konstruktori zadano automatski stvoreni kada stvorimo objekt klase. To se naziva implicitno stvaranje. Konstruktori su istog imena što je naziv klase. Razmotrimo datoteku koja ima c ++ kôd konstruktora jer znamo da klasa ima dvije mogućnosti, privatnu i javnu. Privatni dio sadrži varijable podataka, dok je javni dio za funkcije dohvaćene bilo kojim objektom. Dakle, konstruktor je također definiran u javnom dijelu.



Cijeli broj()

{

x=pedeset;

i=dvadeset;

};

U ovom konstruktoru vrijednosti se dodjeljuju varijablama. Ako želimo dohvatiti vrijednosti kao izlaz, moramo ih ispisati u glavnom programu.







Nakon definiranja konstruktora klasa se zatvara. Prilikom ulaska u glavni program, ispisat ćemo vrijednosti pomoću objekta. Objekt uvijek pristupa konstruktorima jer su to dijelovi klase. Stvaranje objekta je tako jednostavno. To se postiže uvođenjem naziva klase. To je cijeli broj u ovom primjeru. Vrijednost će se dohvatiti metodom dot. tj. a.x.

Možemo vidjeti izlaz izvornog koda s terminala u Ubuntuu. Pristup koji se koristi za dobivanje rezultata prilično je jednostavan. Prvo se kod sastavlja, a zatim izvršava. Za proces sastavljanja koristimo prevoditelj G ++. Baš kao i u slučaju C, koristimo GCC.



$ G++ -ili filec filec.c

./filec

-O se koristi za spremanje rezultata u datoteku.

Primjer 2

Na ovoj ilustraciji ćemo objasniti parametrizirane konstruktore. Za razliku od prethodnog primjera, također možemo prenijeti argumente konstruktorima iz glavnog programa. Kad se objekt generira, te se vrijednosti automatski prosljeđuju varijablama prisutnim u konstruktoru radi primanja vrijednosti. Neke od upotreba parametriziranih konstruktora su.

  • Koristi se za inicijalizaciju različitih varijabli s različitim vrijednostima unutar konstruktora kada se inicijalizira.
  • Koristi se u konstruktorskom preopterećenju. To je definirano kasnije u članku.

Pogledajmo sada ilustraciju koju smo opisali za razradu ovog koncepta. Klasa ima naziv integer, pa će definitivno i ime konstruktora biti isto. U parametrima konstruktora postoje dvije vrijednosti tipa cijeli broj. Oni su inicijalizirani za prihvaćanje vrijednosti koje se šalju iz glavnog programa kao poziv funkcije.

Cijeli broj( intx,inti)

{

DO=x;

B=i;

};

U prethodnom primjeru varijablama unutar konstruktora date su vrijednosti. Dok su u ovom konstruktoru varijable dodijeljene varijablama koje imaju vrijednost.

Ako želimo uzeti prikaz, moramo definirati funkciju koja će vratiti vrijednost jer nije moguće pristupiti toj inicijaliziranoj varijabli izravno iz konstruktora.

intgetX()

{

povratakdo;

};

Sada ćemo vidjeti glavni dio programa. Ovdje kada je objekt izrađen, možete vidjeti vrijednosti u odjeljku parametara.

Cijeli broj v(70,55); {implicitno}

cijeli broj v=cijeli broj(10,petnaest); {eksplicitan}

A za prikaz rezultata pozvat ćemo funkcije stvorene unutar klase pomoću objekta. tj. v.getx ().

Način preuzimanja zapisa isti je kao i prije.

Primjer 3

Ovaj primjer se bavi kopiranjem konstruktora klase. Kopirani konstruktor koristi se za inicijalizaciju objekta s drugim objektom slične klase kojoj pripada. Ovaj konstruktor kopira podatke prisutne u jednom objektu u drugi. Parametri ovog konstruktora sadrže adresu objekta klase. Razmotrimo navedene primjere u kojima smo uveli dvije varijable istih vrsta podataka kako bi im mogle pristupiti bilo koje funkcije unutar klase. Konstruktor će primiti vrijednosti kroz varijablu. Istodobno, kopirani konstruktor primit će samo objekt. I uz pomoć ovog objekta vrijednosti će se dohvatiti.

zid(zid&obj)

{

Duljina=obj.duljina;

Visina=obj.visina;

}

Moramo izračunati površinu, pa je funkcija za ovaj izračun definirana ovdje. Ovo će vratiti vrijednost glavnoj funkciji kada se pozove. Sada ćemo promatrati glavni program koda

Poziv funkcije kopiranog konstruktora bit će ovakav.

Zidni zid 2=zid 1;

Objekt poziva kopirani konstruktor, a kroz njega se kopiraju podaci kroz prvi objekt. Nadalje, pozvat ćemo funkciju za izračunavanje površine kroz oba objekta.

Iz izlaza možete vidjeti da je rezultat iz oba konstruktora isti. To znači da je objekt uspješno kopirao cijele podatke.

Primjer 4

Ovo je ilustracija preopterećenja konstruktora. To se događa kada moramo koristiti više od jedne funkcije unutar klase. Preopterećenje konstruktora slijedi upute parametriziranih konstruktora. Svi konstruktori u klasi imaju slično ime kao klasa. No svakom od konstruktora dodjeljuju se različiti parametri. Svaki konstruktor se poziva prema argumentu kada stvaramo objekt.

Razmotrimo dani primjer u kojem smo koristili tri konstruktora. Jedan je bez ikakvog argumenta. Drugi je s jednim argumentom, dok je treći s dva argumenta. Ova je ilustracija slična prethodnoj. Dok izračunavamo površinu u zasebnoj funkciji opisanoj unutar klase.

// Konstruktor s dva argumenta

oblik(intx,inti)

{

do=x;

b=i;

};

Sada, krećući se prema glavnom programu, možemo vidjeti da se pri pokretanju objekta klase konstruktor bez argumenta poziva prema zadanim postavkama. Sada moramo pozvati druge konstruktore s različitim objektima koji imaju različite argumente.

Oblik s;

Oblik s2(8);

Oblik s3(4,2);

Funkcija pomoću koje možemo prikazati vrijednost poziva se kroz isti stvoreni objekt.

Za pregled rezultata upotrijebit ćemo istu metodu naredbenog terminala sastavljanjem i izvršavanjem koda prisutnog u datoteci.

Iz izlaza možemo vidjeti da je odgovor isti za svaki konstruktor.

Zaključak

U ovom smo vodiču vidjeli osnove konstruktora i njihove funkcionalnosti, uključujući kako ih preopteretiti. Konstruktori se koriste za inicijalizaciju varijabli s vrijednostima.