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

Žemiau pateiktame 1 rinkinyje mes pristatėme vardų sritis.
Vardų sritis C ++ | 1 rinkinys (įvadas)

vardų sritis vardų sritis_name 
{



}

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:

SYNTAX: 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  ;   }   


Taip pat galima sukurti daugiau nei vieną vardų erdvę pasaulinėje erdvėje. Tai galima padaryti dviem būdais. 
 

    vardų sritys, turinčios skirtingus vardus  
     
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     &  lt  ;  &  lt  ;     first  ::  func  ()     &  lt  ;  &  lt  ;  &  quot  ;    n  &  quot  ;;         cout     &  lt  ;  &  lt  ;     second  ::  func  ()     &  lt  ;  &  lt  ;  &  quot  ;    n  &  quot  ;;         return     0  ;   }   

  • Išvestis: 
     
5 10 
    Vardų sričių išplėtimas (du kartus naudojant tą patį pavadinimą)  
    It is also possible to create two namespace blocks having the same name. The second namespace block is nothing but actually the continuation of the first namespace. Paprastesniais žodžiais galime pasakyti, kad abi vardų erdvės nesiskiria, bet iš tikrųjų tas pats, kurie yra apibrėžti dalyse. 
     
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     &  lt  ;  &  lt  ;     first  ::  val1     &  lt  ;  &  lt  ;  &  quot  ;    n  &  quot  ;;         cout     &  lt  ;  &  lt  ;     first  ::  val2     &  lt  ;  &  lt  ;  &  quot  ;    n  &  quot  ;;         return     0  ;   }   

  • Išvestis: 
     
500 501 


 
 


 

CPP
   // C++ program to demonstrate working of unnamed    // namespaces   #include      using     namespace     std  ;   // unnamed namespace declaration   namespace      {      int     rel     =     300  ;      }   int     main  ()   {      cout     &  lt  ;  &  lt  ;     rel     &  lt  ;  &  lt  ;     &  quot  ;    n  &  quot  ;;     // prints 300      return     0  ;   }   

Išvestis: 
 

300