Navnområde i C ++ | Sett 1 (introduksjon) Navnområde i C ++ | Sett 2 (utvide navneområdet og ikke navngitt navneområde)
Ulike måter å få tilgang til navneområde på: I C ++ er det to måter å få tilgang til navneområder og funksjoner.
Definere et navneområde:
Et navneområdedefinisjon begynner med nøkkelordet navneområdet etterfulgt av navneområdet navn som følger:
namespace namespace_name
{
// code declarations i.e. variable (int a;)
method (void add();)
classes ( class student{};)
}
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:
tynn algoritmeC++
#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:
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; }
1. Normal måte
CPP// C++ program to demonstrate accessing of variables // in normal way i.e. using '::' #include using namespace std; namespace geek { int rel = 300; } int main() { // variable ‘rel’ accessed // using scope resolution operator cout << geek::rel << "n"; // prints 300 return 0; }
Utgang:
300
2. 'Bruke' direktiv
CPP// C++ program to demonstrate accessing of variables // in normal way i.e. using 'using' directive #include using namespace std; namespace geek { int rel = 300; } // use of ‘using’ directive using namespace geek; int main() { // variable ‘rel’ accessed // without using scope resolution variable cout << rel << "n"; //prints 300 return 0; }
Produksjon:
300
Bruke navneområde i overskriftsfiler Vi kan opprette navneområde i en fil og få tilgang til innhold ved hjelp av et annet program. Dette gjøres på følgende måte.
- Vi må lage to filer. En som inneholder navneområdet og alle datamedlemmer og medlemsfunksjoner vi ønsker å bruke senere.
- Og det andre programmet kan direkte ringe det første programmet for å bruke alle datamedlemmer og medlemsfunksjoner i det.
Fil 1
matriser i c-programmeringCPP
// file1.h namespace foo { int value() { return 5; } }
Fil 2
CPP// file2.cpp - Not to be executed online #include #include file1.h // Including file1 using namespace std; int main () { cout << foo::value(); return 0; }
Her kan vi se at navneområdet er opprettet i File1.h og verdien () for det navneområdet blir kalt i File2.cpp. Nestede navneområder I C ++ kan navneområder også nestes, dvs. et navneområde inne i et annet. Oppløsningen av navnefeltvariabler er hierarkisk.
CPP// C++ program to demonstrate nesting of namespaces #include using namespace std; // Nested namespace namespace out { int val = 5; namespace in { int val2 = val; } } // Driver code int main() { cout << out::in::val2; // prints 5 return 0; }
Utgang:
5
Navneområde aliasing: I C ++ kan du bruke et aliasnavn for navneområdet ditt for brukervennlighet. Eksisterende navneområder kan være aliased med nye navn med følgende syntaks:
namespace new_name = current_name;CPP
#include namespace name1 { namespace name2 { namespace name3 { int var = 42; } } } // Aliasing namespace alias = name1::name2::name3; int main() { std::cout << alias::var << 'n'; }
Utgang:
42
Hvis du liker geeksforgeeks og ønsker å bidra, kan du også skrive en artikkel ved hjelp av skriv.geeksforgeeks.org eller send artikkelen din til å gjennomgå [email protected]. Se artikkelen din som vises på GeeksForgeeks hovedside og hjelpe andre nørder.