Vardų sritis C ++ | 3 rinkinys (prieiga, antraštės kūrimas, lizdas ir slapyvardis)

Vardų sritis C ++ | 1 rinkinys (įvadas) Vardų sritis C ++ | 2 rinkinys (vardų srities išplėtimas ir bevardžių vardų sritis)

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:

C++
   #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

C++
   #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     &  lt  ;  &  lt  ;     geek  ::  rel     &  lt  ;  &  lt  ;     &  quot  ;    n  &  quot  ;;     // 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     &  lt  ;  &  lt  ;     rel     &  lt  ;  &  lt  ;     &  quot  ;    n  &  quot  ;;     //prints 300          return     0  ;   }   

Išvestis:

 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     &  lt  ;  &  lt  ;     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     &  lt  ;  &  lt  ;     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:

 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     &  lt  ;  &  lt  ;     alias  ::  var     &  lt  ;  &  lt  ;     '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.