Udostępnij za pośrednictwem


Deklaracja obszaru nazw

A obszaru nazw deklarację identyfikuje i przypisuje unikatową nazwę obszaru nazw zgłoszonych przez użytkownika.

namespace identifier

Uwagi

Takie obszary nazw są używane do rozwiązania problemu kolizji nazw w bardzo dużych programów i bibliotek.Programiści można użyć nazw do rozwijania nowych składników oprogramowania i bibliotek bez powodowania konfliktów nazw z istniejących komponentów.

Na przykład:

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

Składnia definicji obszaru nazw jest następująca:

namespace identifier
{
   [ declaration-list ]
}

A definicji przestrzeni nazw mogą być zagnieżdżone w innym definicji przestrzeni nazw.Każdy definicji przestrzeni nazw musi znajdować się w zakresie pliku lub bezpośrednio w innym definicji przestrzeni nazw.

Na przykład:

// 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
   {
   }
}

W odróżnieniu od innych regionów deklaracyjne definicja obszaru nazw można podzielić na kilka części jednostki tłumaczenie w jednym.

// 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()
{
}

Gdy obszar nazw jest kontynuowany w ten sposób po jego początkowej definicji kontynuacji nosi nazwę rozszerzenia definicji przestrzeni nazw.Oryginalny definicji tego obszaru nazw jest znany jako definicji oryginalnej przestrzeni nazw.

Użycie tej notacji może być kłopotliwe, o dłuższych nazwach lub w bardzo dużych programów.Za pomocą deklaracji, przy użyciu dyrektywy, i aliasy nazw dostarczyć bardziej prostych sposobów na członków obszaru nazw odniesienia.

A obszaru nazw zgłoszenia, czy obejmuje nowy obszar nazw, bez nazwy obszaru nazw lub definicję rozszerzonego nazw musi towarzyszyć organ obszaru nazw, ujęty w nawiasy klamrowe.Instrukcja

namespace X;

jest to błąd składni.Instrukcja

namespace X{};

nie jest błąd składni, ale jest pozbawione sensu.

Aby uzyskać informacje ogólne, zobacz przestrzeni nazw.

Identyfikator w oryginalnej definicji obszaru nazw musi być unikatowa w regionie deklaracyjne, w którym jest używany.Identyfikator jest nazwą obszaru nazw i jest używany do jego członków.

Deklaracyjne region definicji obszaru nazw jest jego ciała.Jednostka musi być ujęty w nawiasy klamrowe ({}) i mogą zawierać deklaracje lub definicje zmiennych, funkcje, obiekty, szablonów i zagnieżdżonych nazw.Deklaracje w listy deklaracji są określane jako elementy obszaru nazw.Nazwa każdego członka nazw automatycznie kwalifikuje się nazwa jego obszar nazw i zakres rozdzielczości operator.

Zobacz też

Informacje

Obszary nazw (C++)

Słów kluczowych języka C++

Obszary nazw bez nazwy