Како најбоље искористити оператора резолуције опсега у Ц ++-у?



Овај чланак ће вас упознати са оператором резолуције опсега на језику Ц ++ и пратити програмску демонстрацију за детаљно разумевање.

Као што и само име говори, оператер Сцопе Ресолутион се користи за добивање скривених имена због променљивих опсега, тако да их и даље можете користити. У овом чланку ћемо разумети како се користи оператер резолуције опсега у Ц ++ и које су његове различите намене од а .

У Ц ++, оператер резолуције опсега је ::. Оператор резолуције опсега на Ц ++ може се користити за:





Хајде сада да разумемо сваку сврху једну по једну уз помоћ примера.

Приступ глобалној променљивој када постоји локална променљива са исто име

Можете користити оператер резолуције опсега за приступ глобалној променљивој ако имате локалну променљиву са истим именом. У доњем примеру имамо две променљиве, обе са именом нум са глобалним и локалним опсегом. Дакле, за приступ глобалној променљивој нум у главној класи потребно је да користите оператор резолуције опсега (тј. :: нум).



поставити Јава цласспатх у линук

Пример

#инцлуде усинг намеспаце стд инт нум = 30 // Иницијализација глобалне променљиве нум инт маин () {инт нум = 10 // Иницијализација локалне променљиве нум цоут<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Оутпут

Настављамо са овим чланком о Сцопе Ресолутион Оператор у Ц ++



Дефинисање функције изван класе

Ако декларишете функцију у класи, а касније желите да је дефинишете изван класе, то можете учинити помоћу оператора резолуције опсега. У примеру испод, декларишемо функцију Спеед у Цласс Бике-у. Касније дефинишемо функцију у главној класи помоћу оператора резолуције опсега.

Пример

#инцлуде усинг спаце намес стд цласс Бике {публиц: // Јуст тхе Фунцтион Децларатион воид Спеед ()} // Дефинисање функције Спеед изван класе Бике усинг :: воид Бике :: Спеед () {цоут<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Оутпут

Настављамо са овим чланком о Сцопе Ресолутион Оператор у Ц ++

Приступ статичкој класи Променљиве

Можете приступити статичкој променљивој класе помоћу назива класе и оператора резолуције опсега (тј. Име_класе :: статиц_вариабле). Можете видети у доњем примеру, ми декларишемо статичку променљиву у класи. Дефинишемо променљиву изван класе помоћу оператора резолуције опсега. Тада му приступамо помоћу оператора назива класе и резолуције.

Пример

#инцлуде усинг намеспаце стд цласс Покушајте {статиц инт нум1 публиц: статиц инт нум2 // Локални параметар скрива члана класе // Члану класе може се приступити помоћу :: воид функције (инт нум1) {// нум1 статичкој променљивој може се приступити :: // упркос локалној променљивој нум1 цоут<< 'Static num1: ' << Try::num1 cout << 'nLocal num1: ' << num1 } } // Defining a static members explicitly using :: int Try::num1 = 10 int Try::num2 = 15 int main() { Try o int num1 = 20 o.function(num1) cout << 'nTry::num2 = ' << Try::num2 return 0 } 

Оутпут

Настављамо са овим чланком о Сцопе Ресолутион Оператор у Ц ++

Упућивање на класу унутар друге класе

У обе класе можете створити угнежђену класу са истим именима променљивих. Обе променљиве можете приступити помоћу оператора резолуције опсега. За променљиву интерне класе треба да користите Оутер_Цласс :: Иннер_Цласс :: променљива.

Пример

#инцлуде усинг спаце намес стд цласс Оутсиде_цласс {публиц: инт нум цласс Инсиде_цласс {публиц: инт нум статиц инт к}} инт Оутсиде_цласс :: Инсиде_цласс :: к = 5 инт маин () {Оутсиде_цласс А Оутсиде_цласс :: Инсиде_цласс Б}

Настављамо са овим чланком о Сцопе Ресолутион Оператор у Ц ++

У случају вишеструког наслеђивања

Ако имате две родитељске класе са истим именима променљивих и наслеђујете их обе у подређеној класи, тада можете да користите оператор резолуције опсега са именом класе за приступ појединачним променљивим.

У доњем примеру креирамо две родитељске класе Парент1 и Парент2, а обе имају променљиву нум. Када наслеђујемо обојицу у класи Цхилд, можемо да приступимо обе нум променљиве помоћу назива класе и оператора резолуције опсега.

Пример

#инцлуде усинг спаце намес стд цласс Парент1 {протецтед: инт нум публиц: Парент1 () {нум = 100}} цласс Парент2 {протецтед: инт нум публиц: Парент2 () {нум = 200}} цласс Цхилд: публиц Парент1, публиц Парент2 { публиц: воид фунцтион () {цоут<< 'Parent1's num is ' << Parent1::num cout << 'nParent2's num is ' << Parent2::num } } int main() { Child obj obj.function() return 0 } 

Оутпут

Настављамо са овим чланком о Сцопе Ресолутион Оператор у Ц ++

Простор имена

Претпоставимо да имамо два именска простора и да оба садрже класу са истим именом. Да бисмо избегли било какав сукоб, можемо користити име простора имена са оператором за решавање опсега. У доњем примеру који користимо стд :: цоут .

Пример

#инцлуде инт маин () {стд :: цоут<< 'Hello' << std::endl } 

Оутпут

Сада бисте након проласка кроз горње програме разумели све о оператеру резолуције опсега у Ц ++. Надам се да је овај блог информативан и да вам додаје додатну вредност.

Сада бисте након извршавања горњег програма разумели Сцопе Ресолутион Оператор у Ц ++. Тако смо дошли до краја овог чланка о „Брзом сортирању у Јави“. Ако желите да сазнате више, погледајте Јава Траининг компаније Едурека, поуздане компаније за учење на мрежи. Едурекин курс за обуку и сертификацију Јава Ј2ЕЕ и СОА осмишљен је тако да вас оспособи за основне и напредне Јава концепте заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га помените у одељку за коментаре на овом блогу и јавићемо вам се што је пре могуће.