logo

Nimitila C ++: ssa | Aseta 2 (nimeä ja nimeämätön nimitila)

Olemme ottaneet käyttöön alla olevassa nimespaikat.
Nimitila C ++: ssa | Sarja 1 (johdanto)

Nimitilan määritteleminen:



Nimitilan määritelmä alkaa avainsanan nimitilasta, jota seuraa nimitilan nimi seuraavasti:

java pää

nimitilan nimitila_nimi 
{
// koodilannat, ts. Muuttuja (int a;)
menetelmä (tyhjä add ();)
luokat (luokan opiskelija {};)
}

On huomattava, että sulkeutumisen jälkeen ei ole puolipistettä (;).
Joko toiminnon tai muuttujan nimitilaa koskevalle versiolle tai muuttuvalle nimitilan nimille seuraavasti:
Namespace_Name:: koodi;  // koodi voi olla muuttuva toiminto tai luokka.



powershell-kommentti monirivinen

Käyttäjädirektii:

Voit myös välttää nimitilojen valmistelusta käyttämällä nimitila -direktiiviä. Tämä direktiivi kertoo kääntäjälle, että seuraava koodi käyttää nimiä määritettyyn nimitilaan. 
Nimitila on siten viitata seuraavaan koodiin:

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

Käytetyssä direktiivin nimeä noudattavat normaalia laajuussääntöä. Nimi on näkyvissä direktiivin käytöstä sen laajuuden loppuun, josta direktiivi löytyy. Yksiköt, joiden sama nimi on määritelty ulommassa laajuudessa, on piilotettu.



Sisäkkäiset nimitilat:

Nimitilat voidaan sisustaa, missä voit määritellä yhden nimitilan toisen nimitilan sisällä seuraavasti:

SYNTAX: namespace namespace_name1 { // code declarations namespace namespace_name2 { // code declarations } }

Voit käyttää sisäkkäisen nimitilan jäseniä käyttämällä resoluutio -operaattoreita seuraavasti:
// Namespace_name2: n jäsenten käyttäminen
käyttämällä nimitilan nimipace_name1 :: nimitila_nimi2;
// Nimitilan jäsenten käyttäminen: Nimi1
Nimitilan nimipace_name1 käyttäminen;


Yllä olevissa lauseissa, jos käytät nimitilaa_nimi1, se tekee Namespace_Name2: n elementeistä saatavana soveltamisalassa seuraavasti:

javan perusteet
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; } 


On myös mahdollista luoda useampi kuin yksi nimitilot globaaliin tilaan. Tämä voidaan tehdä kahdella tavalla. 
 

kuinka tulostaa java
    Nimitilat, joilla on eri nimet 
     
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; } 

  • Lähtö: 
     
5 10
    Nimitilojen laajentaminen (saman nimen käyttäminen kahdesti) 
    On myös mahdollista luoda kaksi nimitilaa, joilla on sama nimi. Toinen nimitila -lohko ei ole vain etunimitilan jatkaminen. Yksinkertaisemmissa sanoissa voimme sanoa, että molemmat nimitilat eivät ole erilaisia, vaan tosiasiallisesti samat, jotka on määritelty osissa. 
     
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; } 

  • Lähtö: 
     
500 501


Nimeämätön nimitilat  
 

  • Ne ovat suoraan käyttökelpoisia samassa ohjelmassa ja niitä käytetään yksilöllisten tunnisteiden julistamiseen.
  • Nimetön nimitilan nimi, jota ei mainita nimitilan ilmoituksessa.
  • Kääntäjä luo ainutlaatuisesti nimitilan nimen.
  • Nimeämättömät nimet, jotka olet luonut luomasi tiedostot, ovat vain luomasi tiedostossa.
  • Nimetön nimitilat korvaavat muuttujien staattisen ilmoituksen.


 

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

Lähtö: 
 

300