initializer lists c
Istražite sve o popisima inicijalizatora na jeziku C ++ s detaljnim primjerima.
C ++ koristi inicijalizacijske popise za inicijalizaciju članova podataka u njihove vrijednosti.
Popisi inicijalizatora uglavnom se koriste u određenim situacijama kada nije moguće inicijalizirati vrijednosti u tijelu konstruktora.
koje su različite vrste ispitivanja
=> Kliknite ovdje za besplatni tečaj C ++.
Popisi inicijativa u C ++
Opća sintaksa popisa Initializer je:
constructorName(type value1, type value2):datamember(value1), datamember(value2) { //constructor code }
Neke od ovih situacija u kojima se koriste popisi inicijalizatora navedene su u nastavku:
# 1) Zadani konstruktor nije predviđen za klasu člana člana.
Kad imamo drugi objekt klase kao člana klase, a klasa tog objekta nema zadani konstruktor, tada taj objekt člana podataka inicijaliziramo pomoću popisa inicijalizatora.
To je prikazano u sljedećem programu.
#include using namespace std; class A { int i; public: A(int ); }; A::A(int val) { i = val; cout << 'Constructor ::A ; i = ' << i << endl; } class B { A a; public: B(int ); }; B::B(int val):a(val) { cout << 'Constructor :: B'; } int main() { B obj(10); return 0; }
Izlaz:
Konstruktor :: A; i = 10
Konstruktor :: B
U gore navedenom programu objekt klase A je član podataka klase B. U klasi A imamo parametrizirani konstruktor, ali ne i zadani konstruktor. Stoga trebamo koristiti popis inicijalizatora u klasi B, kako bismo stvorili objekt klase A.
# 2) Inicijalizacija C naši članovi podataka.
Kako se članovi const podataka mogu inicijalizirati samo jednom, inicijaliziramo ih pomoću popisa inicijalizatora.
To demonstriramo na sljedećem primjeru.
#include using namespace std; class sample { private: const int val; public: sample(int val):val(val) { cout << 'Value is ' << val; } }; int main() { sample obj(10); }
Izlaz:
Vrijednost je 10
U gore navedenom programu imamo const kao član podataka. Ako moramo inicijalizirati ovog člana const na vrijednost, to radimo pomoću popisa inicijalizatora kao što je prikazano.
# 3) Za inicijalizaciju referentnih tipova podataka.
Kao i konstante, reference su nepromjenjive. Dakle, kad god želimo inicijalizirati članove podataka referentnog tipa, koristimo popise inicijalizatora.
U sljedećem programu inicijaliziramo referentnog člana podataka pomoću popisa inicijalizatora.
#include using namespace std; class sample { private: int &ref_val; public: sample(int &ref_val):ref_val(ref_val) { cout << 'Value is ' << ref_val; } }; int main() { int ref=10; sample obj(ref); return 0; }
Izlaz:
Vrijednost je 10
U ovom programu referencu imamo kao člana podataka i inicijaliziramo je pomoću popisa inicijalizatora.
# 4) Kada ime člana i parametar imaju isto ime.
najbolji besplatni DVD ripping softver Windows
Kada se imena člana klase trebaju inicijalizirati s parametrima, a ti parametri imaju ista imena kao i imena članova, koristimo popis inicijalizatora. U našim prethodnim temama koristili smo ovaj pokazivač za istu situaciju. Druga opcija je popis inicijalizatora.
Gornji smo primjer izmijenili ovim pokazivačem kako bismo upotrijebili popis inicijalizatora u sljedećem programu.
#include using namespace std; class Sample { private: int num; char ch; public: Sample(int num,char ch):num(num),ch(ch){ cout<<'num = '< Izlaz:
num = 100
ch = A

U ovom programu prosljeđujemo parametre radi inicijalizacije podataka s istim imenima. U ovom slučaju u tu svrhu koristimo popis inicijalizatora.
# 5) Poboljšati izvedbu
Svaki put kad inicijaliziramo članove podataka u tijelu konstruktora, stvara se privremeni objekt za člana podataka tijekom dodjeljivanja vrijednosti. Nakon što je dodjela izvršena, ovaj se privremeni objekt briše. Ovo je zapravo režija.
Ako koristimo popis inicijalizatora, s druge strane, konstruktor kopije koristi se za dodjeljivanje vrijednosti. To značajno poboljšava performanse.
Zaključak
Stoga smo u ovom vodiču naučili o popisima inicijalizatora zajedno s mnogim situacijama u kojima ih trebamo koristiti u programiranju na C ++.
Iako ne moramo koristiti inicijalizacijski popis kada ove situacije nisu prisutne, uvijek ih možemo koristiti za poboljšanje izvedbe programa.
U našem nadolazećem tutorialu detaljno ćemo razgovarati o funkcijama prijatelja na C ++.
=> Pogledajte ovdje kako biste istražili cjeloviti popis vodiča za C ++.
Preporučena literatura