Navnområde i C ++ | Sett 2 (utvide navneområdet og ikke navngitt navneområde)
Vi har introdusert navneområder under sett 1.
Navnområde i C ++ | Sett 1 (introduksjon)
Definere et navneområde:
Et navneområdedefinisjon begynner med nøkkelordet navneområdet etterfulgt av navneområdet navn som følger:
namespace namespace_name
{
// kode erklæringer, dvs. variabel (int a;)
Metode (void add ();)
Klasser (klassestudent {};)
}
Det skal bemerkes at det ikke er noen semikolon (;) etter avsluttende stag.
For å ringe navneområdet-aktivert versjon av enten funksjon eller variabel prepend navneområdet navn som følger:
namespace_name :: kode; // kode kan være variabel funksjon eller klasse.
Bruksdirektivet:
Du kan også unngå prepending av navneområder med bruk av navneområdet. Dette direktivet forteller kompilatoren at den påfølgende koden benytter seg av navn i det spesifiserte navneområdet.
Navnområdet er således underforstått 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 ; }
Navn introdusert i et bruk av direktiv adlyder normale omfangsregler. Navnet er synlig fra punktet i bruksdirektivet til slutten av omfanget som direktivet er funnet. Enheter med samme navn definert i et ytre omfang er skjult.
Nestede navneområder:
Navneområder kan nestes der du kan definere ett navneområde inne i et annet navnområde som følger:
SYNTAX: namespace namespace_name1 { // code declarations namespace namespace_name2 { // code declarations } } Du kan få tilgang til medlemmer av nestet navneområde ved å bruke oppløsningsoperatører som følger:
// for å få tilgang til medlemmer av namespace_name2
ved hjelp av navneområde navnepace_name1 :: namespace_name2;
// for å få tilgang til medlemmer av navneområdet: name1
ved hjelp av navneområdet navneområde_navn1;
I ovennevnte utsagn hvis du bruker namespace_name1, vil det gjøre elementer av navnepace_name2 tilgjengelig 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å mulig å lage mer enn ett navnefelt i det globale rommet. Dette kan gjøres på to måter.
-
Produksjon:
-
Produksjon:
- De er direkte brukbare i samme program og brukes til å erklære unike identifikatorer.
- I ikke navngitte navneområder navn på navneområdet i ikke nevnt i erklæringen om navneområde.
- Navnet på navneområdet genereres unikt av kompilatoren.
- De ikke navngitte navneområdene du har opprettet, vil bare være tilgjengelig i filen du opprettet den i.
- Ikke navngitte navnefelt er erstatningen for den statiske variabelen.
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
Det er også mulig å lage to navneblokker med samme navn. Den andre navneområdet er ingenting annet enn å fortsette det første navneområdet. Med enklere ord kan vi si at begge navneområdene ikke er forskjellige, men faktisk det samme som er definert i deler.
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
Ikke navngitte navneområder
// 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 ; }
Produksjon:
300
Du Liker Kanskje
Topp Artikler
Kategori
Interessante Artikler