Vardų sritis C ++ | 1 rinkinys (įvadas) Vardų sritis C ++ | 2 rinkinys (vardų srities išplėtimas ir bevardžių vardų sritis)
s python
Skirtingi būdai, kaip pasiekti vardų sritį: C ++ yra du būdai, kaip pasiekti vardų srities kintamuosius ir funkcijas.
Vardų srities apibrėžimas:
Vardų srities apibrėžimas prasideda nuo raktinių žodžių vardų srities, po kurios vardų sritis yra tokia:
namespace namespace_name
{
// code declarations i.e. variable (int a;)
method (void add();)
classes ( class student{};)
}
Reikia pažymėti, kad po uždarymo petnešos nėra kabliataškio (;).
Norėdami paskambinti į vardų srities funkciją, arba kintamąjį, iš anksto iš anksto pavadinti vardų vardą taip:
vardųpace_name :: kodas; // kodas gali būti kintama funkcija arba klasė.
Naudojama direktyva:
Taip pat galite vengti vardų erdvių rengimo naudodamiesi vardų srities direktyva. Ši direktyva sako kompiliatoriui, kad vėlesnis kodas naudoja vardus nurodytoje vardų srityje.
Taigi vardų sritis yra numanoma šiam kodui:
#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; }
Pavadinimai, įvesti naudojant direktyvoje, klostosi normalios apimties taisyklės. Pavadinimas matomas nuo naudojimo direktyvo taško iki apimties, kurioje randama direktyva, pabaigą. Slėpimo subjektai su tuo pačiu pavadinimu, apibrėžta išorine apimtimi, yra paslėpti.
Įdėtos vardų erdvės:
Vardų sritis galima įdėti ten, kur galite apibrėžti vieną vardų sritį kitos vardų erdvėje taip:
namespace namespace_name1
{
// code declarations
namespace namespace_name2
{
// code declarations
}
}
Naudodamiesi rezoliucijos operatoriais galite pasiekti įterptų vardų srities narius taip:
// Norėdami pasiekti „Namespace_name2“ narius
NAMESpace Namespace_name1 :: vardųpace_name2;
// Norėdami patekti į vardų srities narius: vardas1
vardų srities vardų sritis_name1 naudojimas;
Aukščiau pateiktuose teiginiuose, jei naudojate vardųpace_name1
Java pavadinimų sutartysC++
#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. Normalus būdas
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; }
Išvestis:
300
2. 'Naudojant' direktyvą
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; }
Išvestis:
java jungiklio dėklas
300
Antraštės failų vardų srities naudojimas Mes galime sukurti vardų sritį viename faile ir prieigos prie turinio naudodami kitą programą. Tai daroma taip.
- Turime sukurti du failus. Viena, kurioje yra vardų sritis, ir visos duomenų narių bei narių funkcijos, kurias norime naudoti vėliau.
- O kita programa gali tiesiogiai iškviesti pirmąją programą, kurioje naudojami visi duomenų nariai ir narių funkcijos.
1 byla
CPP// file1.h namespace foo { int value() { return 5; } }
2 byla
CPP// file2.cpp - Not to be executed online #include #include file1.h // Including file1 using namespace std; int main () { cout << foo::value(); return 0; }
Čia matome, kad vardų sritis yra sukurta file1.h, o tos vardų srities vertė () yra vadinama FILE2.CPP. Įdėtos vardų erdvės „C ++“ vardų srityse taip pat gali būti įdėta, t. Y. Viena vardų sritis kitoje. Vardų srities kintamųjų skiriamoji geba yra hierarchinė.
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; }
Išvestis:
5
Vardų srities slapyvardis: „C ++“ galite naudoti savo vardų srities pavadinimą, kad būtų lengviau naudoti. Esamos vardų erdvės gali būti slapyvardžiai su naujais vardais su tokia sintakse:
eilutę palyginkite java
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'; }
Išvestis:
42
Jei jums patinka „Geeksforgeeks“ ir norėtumėte prisidėti, taip pat galite parašyti straipsnį naudodami Rašykite.geeksforgeeks.org Arba atsiųskite savo straipsnį adresu reciaw [email protected]. Peržiūrėkite savo straipsnį, rodomą pagrindiniame „GeeksforGeeks“ puslapyje ir padėkite kitiems geiksmetrams.