Sdílet prostřednictvím


Deklarace oboru názvů

A oboru názvů prohlášení identifikuje a přiřadí jedinečný název oboru názvů prohlášena za uživatele.

namespace identifier

Poznámky

Vyřešit konflikt názvů ve velké programy a knihovny se používají tyto obory názvů.Programátoři můžete vyvinout nové softwarové komponenty a knihovny, aniž by konflikty názvů s existující součásti obory názvů.

Příklad:

// namespace_declaration1.cpp
namespace X
{
   int i;
   double j;
}
int main()
{
   X::i++;
}

Syntaxe pro definice jmenného prostoru je:

namespace identifier
{
   [ declaration-list ]
}

A definice jmenného prostoru mohou být vnořené v jiném definice jmenného prostoru.Každý definice jmenného prostoru musí být v rozsahu souboru nebo okamžitě v jiném definice jmenného prostoru.

Příklad:

// namespace_declaration2.cpp
// C2870 expected
namespace A
{
   int j = 3;
   int f(int k);
}

namespace Outer
{
   int n = 6;
   int func(int num);

   namespace Inner
   {
      float f = 9.993;
   }
}

int main()
{
   namespace local   // C2870: not at global scope
   {
   }
}

Na rozdíl od ostatních oblastí deklarativní definice oboru názvů lze rozdělit přes několik částí překlad jedné jednotky.

// namespace_declaration3.cpp
namespace A
{
   // declare namespace A variables
   int i;
   int j;
}

namespace B
{
}

namespace A
{
   // declare namespace A functions
   void func(void);
   int int_func(int i);
}

int main()
{
}

Obor názvů se tímto způsobem pokračuje po počáteční definici, pokračování se nazývá rozšíření definice jmenného prostoru.Původní definici daného oboru názvů je označován jako původní definice jmenného prostoru.

Použití tohoto zápisu může být náročný s delšími názvy nebo v rozsáhlé programy.Prohlášení pomocí, použití směrnice, a oboru názvů aliasů poskytují více jednoduché způsoby referenční členů oboru názvů.

A oboru názvů prohlášení, zda zahrnuje nový obor názvů, nepojmenované oboru názvů nebo definici rozšířené oboru názvů, musí být doprovázeny oboru názvů subjekt uzavřeny ve složených závorkách.Prohlášení

namespace X;

je chyba syntaxe.Prohlášení

namespace X{};

není chyba syntaxe, ale nemá význam.

Obecné informace naleznete v obory názvů.

Deklarativní oblasti, ve kterém je použit musí být jedinečný identifikátor v původní definici oboru názvů.Identifikátor je název oboru názvů a se používá jako odkaz, jeho členů.

Deklarativní oblast definice jmenného prostoru je jeho těla.Subjekt musí být uzavřeny do složených závorek ({}) a mohou obsahovat prohlášení nebo definice proměnných, funkcí, objekty, šablony a vnořené obory názvů.V prohlášení seznam prohlášení jsou označeny jako členové oboru názvů.Název každého člena oboru názvů automaticky kvalifikovaný název jeho obor názvů a operátor oboru rozlišení.

Viz také

Referenční dokumentace

Obory názvů (C++)

Klíčových slov jazyka C++

Nepojmenované obory názvů