Уведели смо просторе за именовање испод Сет 1.
Имена у Ц ++ | Сет 1 (Увод)
путовање али
Дефинисање имена:
Дефиниција простора за именовање почиње кључним речима имена које је праћено именовањем имена имена на следећи начин:
иМеспаце намеспаце_наме
{
// цоде декларације И.Е. променљива (инт а;)
метода (неважећи додатак ();)
часови (класа студент {};)
}
Треба напоменути да нема зарезака (;) након затварања Браце.
Да бисте позвали верзију Омогућене именовањем или променљиве варијабле препуни имена простора за именовање на следећи начин:
намеспаце_наме :: код; // код може бити променљива функција или класа.
Коришћење Директиве:
Такође можете да избегнете предувете просторе за именовање помоћу Директиве о именовању имена. Ова директива говори преводиоцу да наредни кодекс користи имена у наведеном простору имена.
Именовање се на тај начин подразумева за следећи код:
уклоните први знак у Екцел-уC++
#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 доступне у опсегу на следећи начин:
нбспC++
#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 << first::func() <<"n"; cout << second::func() <<"n"; 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 << first::val1 <<"n"; cout << first::val2 <<"n"; return 0; }
500 501
Неименовани имена места
индијска глумица Рани МукерџиCPP
// C++ program to demonstrate working of unnamed // namespaces #include using namespace std; // unnamed namespace declaration namespace { int rel = 300; } int main() { cout << rel << "n"; // prints 300 return 0; }
Излаз:
300