Vi har introduceret navneområder i nedenfor sæt 1.
Navneområde i C ++ | Sæt 1 (introduktion)
sortere arrayliste
Definition af et navneområde:
En navneområde -definition begynder med nøgleordets navneområde efterfulgt af navneområdet som følger:
Navneområde NAMESPACE_NAME
{
// Kodeklarationer, dvs. variabel (int a;)
metode (void tilføj ();)
klasser (klassestudent {};)
}
Det skal bemærkes, at der ikke er nogen semikolon (;) efter den afsluttende afstivning.
For at kalde navneområdet-aktiveret version af enten funktion eller variabel præpend navneområdet som følger:
NAMESPACE_NAME :: CODE; // kode kan være variabel funktion eller klasse.
Brugsdirektivet:
Du kan også undgå forberedelse af navneområder med brug af navneområdet. Dette direktiv fortæller kompilatoren, at den efterfølgende kode bruger navne i det specificerede navneområde.
Navneområdet antydes således for følgende kode:
#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; }
Navne, der blev indført i et brug af direktiv, overholder normale omfangsregler. Navnet er synligt fra det punkt, der bruger direktivet til slutningen af det omfang, hvor direktivet findes. Enheder med samme navn defineret i et ydre omfang er skjult.
Nestede navneområder:
Navneområder kan indlejres, hvor du kan definere et navneområde inde i et andet navn plads som følger:
SYNTAX: namespace namespace_name1 { // code declarations namespace namespace_name2 { // code declarations } }
Du kan få adgang til medlemmer af indlejret navneområde ved hjælp af opløsningsoperatører som følger:
// for at få adgang til medlemmer af navneområde_name2
ved hjælp af navneområdet navneområde_name1 :: navneområde_name2;
// for at få adgang til medlemmer af navneområdet: Navn1
ved hjælp af navneområdet navneområde_name1;
I ovenstående udsagn, hvis du bruger navneområde_name1, vil det gøre elementer af navneområde_name2 tilgængelig i omfanget som følger:
#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; }
Det er også muligt at oprette mere end et navneområder i det globale rum. Dette kan gøres på to måder.
-
Produktion:
-
Produktion:
- De kan direkte anvendes i det samme program og bruges til at erklære unikke identifikatorer.
- I navngivne navneområder Navn på navneområdet i ikke nævnt i erklæringen om navneområde.
- Navnet på navneområdet genereres unikt af kompilatoren.
- De navngivne navneområder, du har oprettet, vil kun være tilgængelig inden for den fil, du har oprettet den i.
- Navngivne navneområder er erstatning for den statiske erklæring om variabler.
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
Det er også muligt at oprette to navneområdeblokke med samme navn. Det andet navneområde -blok er intet andet end faktisk fortsættelsen af det første navneområde. Med enklere ord kan vi sige, at begge navneområder ikke er forskellige, men faktisk de samme, der defineres i dele.
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
Navngivne navneområder
// 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; }
Produktion:
300