Zavedli jsme jmenné prostory v níže uvedené sadě 1.
Namespace v C ++ | Set 1 (Úvod)
Definování jmenného prostoru:
Definice jmenného prostoru začíná názvem klíčových slov následovaným názvem názvů:
if a jinde v bash
Namespace namespace_name
{
// Deklarace kódu, tj. Proměnná (int a;)
metoda (void add ();)
Třídy (student třídy {};)
}
Je třeba poznamenat, že po závěrečné vzpěře neexistuje žádný středník (;).
Chcete-li volat verzi funkce funkce funkce funkce nebo proměnné, přepravte název názvu následujícím způsobem:
namespace_name :: code; // kód může být proměnná funkce nebo třída.
Směrnice o použití:
Můžete se také vyhnout přípravě jmenných prostorů pomocí směrnice o používání názvů. Tato směrnice říká kompilátoru, že následující kód využívá názvy v zadaném jmenném prostoru.
Názvý prostor je tedy implikován pro následující kód:
#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; }
Názvy zavedená ve směrnici Poslouchejte normální pravidla rozsahu. Název je viditelný z bodu použití směrnice na konec rozsahu, ve kterém je nalezena směrnice. Entity se stejným názvem definovaným ve vnějším rozsahu jsou skryty.
Vnořené jmenné prostory:
Jmenné prostory mohou být vnořeny tam, kde můžete definovat jeden jmenný prostor uvnitř jiného názvu prostoru následujícím způsobem:
seznam třídit pole
SYNTAX: namespace namespace_name1 { // code declarations namespace namespace_name2 { // code declarations } } Přístup k členům vnořeného názvů můžete získat pomocí operátorů rozlišení následujícím způsobem:
// pro přístup k členům jmenného prostoru_NAME2
Používání jmenného prostoru namepace_name1 :: namespace_name2;
// pro přístup k členům jmenného prostoru: name1
Používání jmenného prostoru nasepcespace_name1;
Ve výše uvedených příkazech, pokud používáte namespace_name1, pak zpřístupní prvky jmenného prostoru_name2 v rozsahu takto:
#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; }
Je také možné vytvořit více než jeden jmenný prostor v globálním prostoru. To lze provést dvěma způsoby.
-
Výstup:
-
Výstup:
- Jsou přímo použitelné ve stejném programu a používají se pro deklarování jedinečných identifikátorů.
- V nejmenovaném jmenném názvu názvu názvů není uvedeno v Deklaraci jmenného prostoru.
- Název jmenného prostoru je jedinečně generován kompilátorem.
- Nepojmenované jmenné prostory, které jste vytvořili, budou přístupné pouze v rámci souboru, ve kterém jste jej vytvořili.
- Nejmenované jmenné prostory jsou náhradou za statické prohlášení proměnných.
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
Je také možné vytvořit dva bloky jmenného prostoru se stejným názvem. Druhý blok jmenného prostoru není nic jiného než pokračování prvního názvů. Jednoduššími slovy můžeme říci, že oba jmenné prostory nejsou odlišné, ale ve skutečnosti stejné, které jsou definovány po částech.
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
Nejmenované jmenné prostory
matematika pow javaCPP
// 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; }
Výstup:
300