initializer lists c
Preskúmajte všetko o zoznamoch inicializátorov v C ++ s podrobnými príkladmi.
C ++ používa zoznamy inicializátorov na inicializáciu dátových členov na ich hodnoty.
Zoznamy inicializátorov sa väčšinou používajú v konkrétnych situáciách, keď nie je možné inicializovať hodnoty v tele konštruktora.
čo použiť namiesto ccleaneru
=> Kliknutím sem získate bezplatný kurz C ++.
Zoznamy inicializátorov v C ++
Všeobecná syntax zoznamu Initializer je:
constructorName(type value1, type value2):datamember(value1), datamember(value2) { //constructor code }
Niektoré z týchto situácií, keď sa používajú zoznamy inicializátorov, sú uvedené nižšie:
# 1) Pre triedu členských objektov nie je poskytnutý predvolený konštruktor.
Keď máme ako člen triedy iný objekt triedy a trieda tohto objektu nemá predvolený konštruktor, inicializujeme tento objekt údajového člena pomocou zoznamu inicializátorov.
Toto je zobrazené v nasledujúcom programe.
#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; }
Výkon:
Konštruktér :: A; i = 10
Konštruktér :: B
Vo vyššie uvedenom programe je objektom triedy A dátový člen triedy B. V triede A máme parametrizovaný konštruktor, ale nie predvolený konštruktor. Potrebujeme teda použiť zoznam inicializátorov v triede B, aby sme vytvorili objekt triedy A.
# 2) Inicializácia C. naši členovia údajov.
Pretože dátové členy const je možné inicializovať iba raz, inicializujeme ich pomocou zoznamu inicializátorov.
Toto demonštrujeme na nasledujúcom príklade.
#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); }
Výkon:
Hodnota je 10
Vo vyššie uvedenom programe máme const ako dátový člen. Ak musíme inicializovať tohto člena const na hodnotu, urobíme to pomocou zoznamu inicializátorov, ako je znázornené.
# 3) Na inicializáciu referenčných typov údajov.
Referencie ako konštanty sú nemenné. Takže kedykoľvek potrebujeme inicializovať dátové členy referenčného typu, použijeme zoznamy inicializátorov.
V nasledujúcom programe inicializujeme člena referenčných údajov pomocou zoznamu inicializátorov.
#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; }
Výkon:
Hodnota je 10
V tomto programe máme referenciu ako dátový člen a inicializujeme ju pomocou zoznamu inicializátorov.
# 4) Keď majú Názov člena a Parameter rovnaké meno.
najlepší bezplatný systém na čistenie systému Windows 10
Keď sa majú názvy členov triedy inicializovať pomocou parametrov a tieto parametre majú rovnaké názvy ako názvy členov, použijeme zoznam inicializátorov. V našich predchádzajúcich témach sme použili tento ukazovateľ na rovnakú situáciu. Druhou možnosťou je zoznam inicializátorov.
Vyššie uvedený príklad sme upravili pomocou tohto ukazovateľa, aby sme využili zoznam inicializátorov v nasledujúcom programe.
#include using namespace std; class Sample { private: int num; char ch; public: Sample(int num,char ch):num(num),ch(ch){ cout<<'num = '< Výkon:
num = 100
ch = A

V tomto programe odovzdáme parametre na inicializáciu dátových členov, ktoré majú rovnaké názvy. V takom prípade použijeme na tento účel zoznam inicializátorov.
# 5) Zlepšiť výkon
Zakaždým, keď inicializujeme dátové členy v tele konštruktora, vytvorí sa pre dátový člen dočasný objekt pri priraďovaní hodnôt. Po dokončení priradenia sa tento dočasný objekt odstráni. Toto je vlastne réžia.
Ak použijeme zoznam inicializátorov, na priradenie hodnôt sa na druhej strane použije konštruktor kopírovania. To výrazne zlepšuje výkon.
Záver
V tomto výučbe sme sa teda dozvedeli o zoznamoch inicializátorov spolu s mnohými situáciami, v ktorých ich musíme použiť v programovaní v C ++.
Aj keď zoznam týchto situácií nie je k dispozícii, nemusíme ich používať, môžeme ich kedykoľvek použiť na zlepšenie výkonu programu.
V našom pripravovanom výučbe si podrobne rozoberieme funkcie priateľov v C ++.
=> Ak chcete preskúmať celý zoznam výukových programov C ++, prečítajte si tu.
Odporúčané čítanie