initializer lists c
Истражите све о списковима иницијализатора на језику Ц ++ са детаљним примерима.
Ц ++ користи иницијализационе листе да иницијализује чланове података њиховим вредностима.
Спискови иницијализатора углавном се користе у специфичним ситуацијама када није могуће иницијализовати вредности у телу конструктора.
како отворити јнлп датотеку
=> Кликните овде за бесплатни курс Ц ++.
Листе иницијализатора у језику Ц ++
Општа синтакса листе Инитиализер је:
constructorName(type value1, type value2):datamember(value1), datamember(value2) { //constructor code }
Неке од ових ситуација у којима се користе листе иницијализатора наведене су у наставку:
# 1) Подразумевани конструктор није предвиђен за класу члана члана.
Када имамо други објект класе као члана класе, а класа тог објекта нема подразумевани конструктор, тада тај објекат члана података иницијализујемо помоћу листе иницијализатора.
Ово је приказано у следећем програму.
#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; }
Излаз:
Конструктор :: А; и = 10
Конструктор :: Б.
У горњем програму, објекат класе А је члан података класе Б. У класи А имамо параметризовани конструктор, али не и подразумевани конструктор. Стога морамо да користимо листу иницијализатора у класи Б, да бисмо креирали објекат класе А.
# 2) Иницијализација Ц. наши чланови са подацима.
Како чланови цонст података могу бити иницијализовани само једном, иницијализујемо их помоћу листе иницијализатора.
То демонстрирамо на следећем примеру.
#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); }
Излаз:
Вредност је 10
У горе наведеном програму имамо цонст као члан података. Ако морамо да иницијализујемо овог цонст члана на вредност, то радимо користећи листу иницијализатора као што је приказано.
# 3) За иницијализацију референтних типова података.
Попут константи референце су непроменљиве. Дакле, кад год треба да иницијализујемо чланове података референтног типа, користимо листе иницијализатора.
У следећем програму иницијализујемо члана референтних података помоћу листе иницијализатора.
#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; }
Излаз:
Вредност је 10
У овом програму имамо референцу као члана података и иницијализујемо је помоћу листе иницијализатора.
# 4) Када име члана и параметар имају исто име.
двоструко повезана листа класе ц ++
Када имена члана класе треба да се иницијализују параметрима и ти параметри имају иста имена као и имена чланова, користимо листу иницијализатора. У претходним темама користили смо овај показивач за исту ситуацију. Друга опција је листа иницијализатора.
Горњи Пример смо модификовали овим показивачем како бисмо користили листу иницијализатора у следећем програму.
#include using namespace std; class Sample { private: int num; char ch; public: Sample(int num,char ch):num(num),ch(ch){ cout<<'num = '< Излаз:
нум = 100
цх = А.

У овом програму прослеђујемо параметре за иницијализацију чланова података који имају иста имена. У овом случају у ту сврху користимо листу иницијализатора.
# 5) Побољшати перформансе
Сваки пут када иницијализујемо чланове података у телу конструктора, ствара се привремени објекат за члана података приликом додељивања вредности. Када је додељивање завршено, овај привремени објекат се брише. Ово је заправо режија.
Ако користимо листу иницијализатора, с друге стране, конструктор копирања се користи за додељивање вредности. Ово значајно побољшава перформансе.
Закључак
Тако смо у овом упутству научили о листама иницијализатора заједно са многим ситуацијама у којима их морамо користити у програмирању на Ц ++.
Иако не морамо да користимо листу иницијализатора када ове ситуације нису присутне, увек их можемо користити за побољшање перформанси програма.
У нашем предстојећем упутству детаљно ћемо размотрити функције пријатеља у Ц ++-у.
=> Погледајте овде како бисте истражили целу листу водича за Ц ++.
Препоручено читање