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.