We hebben naamruimten geïntroduceerd in onderstaande set 1.
Naamruimte in C++ | Set 1 (inleiding)
Een naamruimte definiëren:
Een naamruimtedefinitie begint als volgt met het trefwoord naamruimte, gevolgd door de naamruimtenaam:
lijstknooppunt java
naamruimte naamruimtenaam
{
// codedeclaraties, d.w.z. variabele (int a;)
methode (void add();)
klassen (klasstudent{};)
}
Opgemerkt moet worden dat er geen puntkomma (;) achter de accolade sluiten staat.
Om de naamruimteversie van een functie of variabele aan te roepen, plaatst u de naam van de naamruimte als volgt:
naamruimtenaam: :code; // code kan een variabele functie of klasse zijn.
De gebruiksrichtlijn:
U kunt ook voorkomen dat naamruimten worden voorafgegaan door de instructie 'using namespace'. Deze richtlijn vertelt de compiler dat de volgende code gebruik maakt van namen in de opgegeven naamruimte.
De naamruimte wordt dus geïmpliceerd voor de volgende code:
#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; }
Namen die in een gebruiksrichtlijn worden geïntroduceerd, voldoen aan de normale reikwijdteregels. De naam is zichtbaar vanaf het punt van de gebruiksrichtlijn tot het einde van het bereik waarin de richtlijn zich bevindt. Entiteiten met dezelfde naam gedefinieerd in een buitenste bereik zijn verborgen.
Geneste naamruimten:
Naamruimten kunnen worden genest, waarbij u als volgt een naamruimte binnen een andere naamruimte kunt definiëren:
c#-tutorial
SYNTAX: namespace namespace_name1 { // code declarations namespace namespace_name2 { // code declarations } } U kunt als volgt toegang krijgen tot leden van een geneste naamruimte door resolutie-operatoren te gebruiken:
// om toegang te krijgen tot leden van naamruimte_naam2
naamruimte naamruimte_naam1::naamruimte_naam2 gebruiken;
// om toegang te krijgen tot leden van naamruimte:naam1
naamruimte naamruimte_naam1 gebruiken;
Als u in de bovenstaande instructies naamruimte_naam1 gebruikt, worden elementen van naamruimte_naam2 als volgt beschikbaar in het bereik:
#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; }
Het is ook mogelijk om meer dan één naamruimte in de globale ruimte te creëren. Dit kan op twee manieren worden gedaan.
-
Uitgang:
-
Uitgang:
- Ze zijn direct bruikbaar in hetzelfde programma en worden gebruikt voor het declareren van unieke identificatiegegevens.
- In naamloze naamruimten wordt de naam van de naamruimte niet vermeld in de declaratie van de naamruimte.
- De naam van de naamruimte wordt op unieke wijze gegenereerd door de compiler.
- De naamloze naamruimten die u hebt gemaakt, zijn alleen toegankelijk binnen het bestand waarin u deze hebt gemaakt.
- Naamruimten zonder naam zijn de vervanging van de statische declaratie van 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 << first::func() <<"n"; cout << second::func() <<"n"; return 0; }
5 10
Het is ook mogelijk om twee naamruimteblokken met dezelfde naam te maken. Het tweede naamruimteblok is niets anders dan de voortzetting van de eerste naamruimte. In eenvoudiger bewoordingen kunnen we zeggen dat beide naamruimten niet verschillend zijn, maar in feite hetzelfde zijn en in delen worden gedefinieerd.
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
Naamloze naamruimten
het hernoemen van de directory linuxCPP
// 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; }
Uitgang:
300