Namespace C ++ | 1. komplekts (ievads) Namespace C ++ | 2. komplekts (pagarinot nosaukumvietu un nenosauktu Namespace)
Dažādi veidi, kā piekļūt nosaukumvietai: C ++ ir divi veidi, kā piekļūt nosaukumvietas mainīgajiem un funkcijām.
Nosaukumvietas definēšana:
Namespace definīcija sākas ar atslēgvārdu nosaukumvietu, kam seko nosaukumvietas nosaukums šādi:
namespace namespace_name
{
// code declarations i.e. variable (int a;)
method (void add();)
classes ( class student{};)
}
Jāatzīmē, ka pēc noslēguma stiprinājuma nav semikola (;).
Lai izsauktu funkcijas vai mainīgā versiju, kas iespējota ar nosaukumvietu, sagatavojiet nosaukumvietas vārdu šādi:
namespace_name :: Code; // kods varētu būt mainīga funkcija vai klase.
LIETOŠANAS DIREKTĪVA:
Varat arī izvairīties no nosaukumvietas sagatavošanas ar lietošanas nosaukuma direktīvu. Šī direktīva norāda kompilatoram, ka nākamais kods izmanto nosaukumus norādītajā nosaukumvietā.
Tādējādi nosaukumvieta tiek domāta šādam kodam:
#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; }
Vārdi, kas ieviesti lietošanas direktīvā, ievērojiet normālos darbības jomas noteikumus. Nosaukums ir redzams no lietošanas direktīvas punkta līdz tā darbības jomas beigām, kurā tiek atrasta direktīva. Entītijas ar tādu pašu nosaukumu, kas definēts ārējā tvērumā, ir paslēptas.
Ligzdotas namespaces:
Namespaces var ligzdot, kur jūs varat definēt vienu nosaukumvietu cita vārda telpā šādi:
namespace namespace_name1
{
// code declarations
namespace namespace_name2
{
// code declarations
}
}
Jūs varat piekļūt ligzdotās nosaukumvietas locekļiem, izmantojot izšķirtspējas operatorus šādi:
// Lai piekļūtu namespace_name2 dalībniekiem
izmantojot namespace namespace_name1 :: namespace_name2;
// Lai piekļūtu Namespace dalībniekiem: Name1
izmantojot namespace namespace_name1;
Iepriekš minētajos paziņojumos, ja izmantojat namespace_name1, tad tas padarīs namespace_name2 elementus pieejamus šādi:
#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. Normāls veids
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; }
Izlaide:
300
2. 'Direktīvas izmantošana
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; }
Izlaide:
300
Izmantojot Namespace galvenes failos Mēs varam izveidot nosaukumvietu vienā failā un piekļuves saturu, izmantojot citu programmu. Tas tiek darīts šādā veidā.
- Mums jāizveido divi faili. Viens, kas satur nosaukumvietu un visas datu dalībnieku un dalībnieku funkcijas, kuras mēs vēlamies izmantot vēlāk.
- Un otra programma var tieši izsaukt pirmo programmu, lai izmantotu visas tajā esošo datu dalībnieku un dalībnieku funkcijas.
1. fails
CPP// file1.h namespace foo { int value() { return 5; } }
2. fails
CPP// file2.cpp - Not to be executed online #include #include file1.h // Including file1 using namespace std; int main () { cout << foo::value(); return 0; }
Šeit mēs redzam, ka nosaukumvieta tiek izveidota failā1.h un vērtība () no šīs nosaukumvietas tiek izsaukta vietnē File2.cpp. Ligzdotas nosaukumvietas C ++ nosaukumvietās var arī ligzdot, t.i., viena nosaukumvieta citā. Namespace mainīgo izšķirtspēja ir hierarhiska.
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; }
Izlaide:
5
Namespace aliasing: C ++ lietošanas ērtībai varat izmantot aizstājvārdu nosaukumam. Esošās nosaukumvietas var aizstāt ar jauniem nosaukumiem ar šādu sintakse:
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'; }
Izlaide:
42
Ja jums patīk geeksforgeeks un vēlaties dot savu ieguldījumu, varat arī uzrakstīt rakstu, izmantojot Write.Geeksforgeeks.org Vai arī nosūtiet savu rakstu uz e-pastu [email protected]. Skatiet savu rakstu, kas parādās Geeksforgeeks galvenajā lapā, un palīdziet citiem geeks.