Пространство имён namespace
Ключевое слово namespace создаёт
именованную область видимости, внутри
которой можно объявлять функции, классы,
переменные и другие сущности. Это позволяет
избежать конфликтов имён, когда разные
части программы содержат сущности с
одинаковыми именами. После ключевого слова
namespace указывается имя пространства
имён, а затем в фигурных скобках размещается
его содержимое. Доступ к сущностям внутри
пространства имён осуществляется через
оператор разрешения области видимости
::, например math::add.
Синтаксис
namespace name
{
// объявления функций, классов, переменных
}
Пример
Давайте создадим два пространства имён
first и second, в каждом из которых
будет своя функция show, и вызовем их
через оператор :::
#include <iostream>
using namespace std;
namespace first
{
void show()
{
cout << "first" << endl;
}
}
namespace second
{
void show()
{
cout << "second" << endl;
}
}
int main()
{
first::show();
second::show();
return 0;
}
Результат выполнения кода:
"first"
"second"
Пример
Давайте создадим пространство имён
math с функцией add и переменной
pi, а затем обратимся к ним по
полному имени:
#include <iostream>
using namespace std;
namespace math
{
double pi = 3.14;
int add(int a, int b)
{
return a + b;
}
}
int main()
{
cout << math::pi << endl;
cout << math::add(2, 3) << endl;
return 0;
}
Результат выполнения кода:
3.14
5
Пример
Пространства имён можно вкладывать друг
в друга. Давайте создадим вложенное
пространство имён inner внутри
outer и обратимся к его функции:
#include <iostream>
using namespace std;
namespace outer
{
namespace inner
{
void show()
{
cout << "inner" << endl;
}
}
}
int main()
{
outer::inner::show();
return 0;
}
Результат выполнения кода:
"inner"
Смотрите также
-
ключевое слово
using namespace,
которое подключает всё пространство имён -
ключевое слово
using,
которое подключает отдельные имена -
оператор
::,
который разрешает область видимости -
ключевое слово
static,
которое задаёт статическое хранилище