имена у Ц ++ | Сет 2 (продужење простора имена и неименованог именовања имена)
Уведели смо просторе за именовање испод Сет 1.
Имена у Ц ++ | Сет 1 (Увод)
Дефинисање имена:
Дефиниција простора за именовање почиње кључним речима имена које је праћено именовањем имена имена на следећи начин:
иМеспаце намеспаце_наме
{
// цоде декларације И.Е. променљива (инт а;)
метода (неважећи додатак ();)
часови (класа студент {};)
}
Треба напоменути да нема зарезака (;) након затварања Браце.
Да бисте позвали верзију Омогућене именовањем или променљиве варијабле препуни имена простора за именовање на следећи начин:
намеспаце_наме :: код; // код може бити променљива функција или класа.
Коришћење Директиве:
Такође можете да избегнете предувете просторе за именовање помоћу Директиве о именовању имена. Ова директива говори преводиоцу да наредни кодекс користи имена у наведеном простору имена.
Именовање се на тај начин подразумева за следећи код:
#include using namespace std ; // first name space namespace first_space { void func () { cout < < 'Inside first_space' < < endl ; } } // second name space namespace second_space { void func () { cout < < 'Inside second_space' < < endl ; } } using namespace first_space ; int main () { // This calls function from first name space. func (); return 0 ; }
Имена представљена у употреби Директива поштују се нормалне правила о обиму. Име је видљиво са тачке употребе Директива до краја обима у којем се нађе директива. Ентитети са истим именом дефинисаним у спољном обиму су скривени.
Грешке просторије:
Исмести просторе могу се угнијестирати где можете дефинисати једно именовање унутар другог имена простора на следећи начин:
SYNTAX: namespace namespace_name1 { // code declarations namespace namespace_name2 { // code declarations } } Чланове угнијежђеног имена можете приступити коришћењем оператора резолуције на следећи начин:
// да приступи члановима намесника_наме2
Коришћење иМеСпаце имеСеспаце_Наме1 :: НамеСпаце_Наме2;
// Приступите члановима имена имена: Име1
користећи имеСпаце намеспаце_наме1;
У горе наведеним изјавама ако користите НамеСпаце_Наме1, тада ће направити елементе намеспаце_наме2 доступне у опсегу на следећи начин:
#include using namespace std ; // first name space namespace first_space { void func () { cout < < 'Inside first_space' < < endl ; } // second name space namespace second_space { void func () { cout < < 'Inside second_space' < < endl ; } } } using namespace first_space :: second_space ; int main () { // This calls function from second name space. func (); return 0 ; }
Такође је могуће створити више простора за именовање у глобалном простору. То се може учинити на два начина.
-
Излаз:
-
Излаз:
- Они су директно употребљиви у истом програму и користе се за проглашавање јединствених идентификатора.
- У неименованим именима имена имена имена није поменуто у изјави имена имена.
- Назив именовног простора јединствено генерише компајлер.
- Неименоване имена које сте створили биће доступни само у датотеци у којој сте га створили.
- Неименовани имена места су замена за статичку изјаву променљивих.
CPP
// A C++ program to show more than one namespaces // with different names. #include using namespace std ; // first name space namespace first { int func () { return 5 ; } } // second name space namespace second { int func () { return 10 ; } } int main () { // member function of namespace // accessed using scope resolution operator cout & lt ; & lt ; first :: func () & lt ; & lt ; & quot ; n & quot ;; cout & lt ; & lt ; second :: func () & lt ; & lt ; & quot ; n & quot ;; return 0 ; }
5 10
Такође је могуће креирати два блока од имена који имају исто име. Други блок на именику није ништа друго него заправо наставак првог простора имена. У једноставнијим речима можемо рећи да и имена просторије нису различите, већ и исто што се дефинишу у деловима.
CPP
// C++ program to demonstrate namespace extension #include using namespace std ; // first name space namespace first { int val1 = 500 ; } // rest part of the first namespace namespace first { int val2 = 501 ; } int main () { cout & lt ; & lt ; first :: val1 & lt ; & lt ; & quot ; n & quot ;; cout & lt ; & lt ; first :: val2 & lt ; & lt ; & quot ; n & quot ;; return 0 ; }
500 501
Неименовани имена места
// C++ program to demonstrate working of unnamed // namespaces #include using namespace std ; // unnamed namespace declaration namespace { int rel = 300 ; } int main () { cout & lt ; & lt ; rel & lt ; & lt ; & quot ; n & quot ;; // prints 300 return 0 ; }
Излаз:
300
Можда Ће Вам Се Свидети
Топ Чланци
Категорија
Занимљиви Чланци