Пространство имен в C ++ дает нам ключ для группировки именованных сущностей, которые являются объектами, классами и функциями под его именем. Или мы можем сказать build, чтобы определить область действия объекта и предотвратить вероятность возникновения конфликта имен.
Пространство имен в C ++
Пространство имен сопоставляет ряд имен с соответствующими объектами. Таким образом, мы можем разделить нашу глобальную область на различные области. Две функции-члены и переменные могут иметь одно и то же имя с помощью пространства имен. Пространство имен C ++ определяется только в глобальной области и может быть объявлено в другом пространстве имен, и нет необходимости в точке с запятой после окончания области действия пространства имен.
Пространство имен — это функция, добавленная в C ++, а не присутствует в C. Пространство имен — это декларативная область, которая предоставляет область для идентификаторов (типов данных, функции, переменных и т. д.) внутри нее.
Разрешены несколько блоков пространства имен с одним и тем же именем. Все объявления в этих блоках объявляются в названной области.
#Syntax
идентификатор пространства имен {Body//тело содержит функции, переменную.}
Объявления пространства имен появляются только в глобальной области. Объявления пространства имен могут быть вложены в другое пространство имен.
Объявления пространств имен не должны иметь доступ к спецификаторам. (Публичный или частный). Не нужно ставить точку с запятой после закрывающей скобки определения пространства имен. Мы можем разделить определение пространства имен на несколько единиц.
См. Следующий пример.
пространство имен My_Namespace {int i, j; //i, j - обычные переменные, определенные в области My_Namespace}
Если мы хотим получить доступ к этим сущностям внутри их пространства имен, мы обычно можем это сделать. Но для доступа к ним извне мы должны использовать:
#Syntax
My_Namespace :: i; My_Namespace ::
:: известен как оператор области видимости.
Основная и самая захватывающая вещь в пространство имен состоит в том, что несколько пространств имен могут иметь одно и то же имя. Ошибка не возникает.
Эта функция делает C ++ лучше, чем C.
#Namespace Nickname
Альтернативное имя также может быть присвоено нашему пространству имен, используя следующий синтаксис.
#Syntax
namespace new_name = current_name ; using namespace std;
Теперь давайте очистим тему с помощью программы.
См. следующий пример.
# включить с использованием пространства имен std; пространство имен My_Namespace {class AppDividend {public: void show () {coutСм. следующий пример.
![]()
#Namespace std
Целые файлы в библиотеке C ++ объявляют все ее классы, объекты, функции внутри std пространство имен. Вот почему мы обычно включаем в наши программы оператор using namespace std ;, который использует любые сущности, присутствующие в iostream.
#include using namespace std; namespace My_Namespace {class App;} class My_Namespace :: App {public: void show () {coutСм. следующий результат.
![]()
В приведенном выше примере мы использовали 'using namespace std' в начале программы, а в этом примере особенность заключается в том, что мы объявили класс в пространстве имен, но определили он выходит за рамки пространства имен.
Таким образом, он сообщает нам, что мы можем объявлять классы в пространстве имен, но также можем определять его вне пространства имен.
Точно так же мы можем определять методы вне пространства имен, объявляя их в пространстве имен.
#Inline Namespace
Члены встроенного пространства имен рассматриваются как члены родительского пространства имен. Это заставляет нас объявлять некоторые специальные функции в нашем родительском пространстве имен.
Мы также можем использовать встроенное пространство имен, чтобы увидеть изменения в общедоступных интерфейсах. Пространство имен, имеющее самую предыдущую версию, называется встроенным.
Для объявления этого пространства имен необходимо использовать ключевое слово inline.
# Безымянное пространство имен
Когда мы не даем имя нашему пространству имен и хотим объявить переменную, тогда безымянное пространство имен входит в роль.
Присутствующий код может видеть идентификаторы в безымянном пространстве имен в этом файле, но вне этого файла он невидим.
#Syntax
namespace {int show ();}Это безымянное пространство имен означает, что пространство имен не имеет места.
Теперь самое главное - использовать директиву. Давайте посмотрим на его использование.
#using Directive
Он позволяет получить доступ к объектам в пространстве имен, которые будут использоваться, без использования пространства имен- name.
Использование ключевого слова было использовано для введения объекта из пространства имен в текущую область.
См. следующую программу.
#include using namespace std; namespace app {int a = 1; int b = 2;} делимое пространства имен {double a = 1.011; double b = 2.3333;} int main () {с использованием app :: a; с использованием дивиденда :: b; coutСм. вывод.
![]()
Итак, мы получили к нему доступ с помощью ключевого слова.
#Nested Namespaces
Пространства имен могут быть вложенными, где вы можете определить пространство имен внутри другого пространства имен. См. Следующий синтаксис.
namespace namespace_name1 {//объявления кода пространство имен namespace_name2 {//объявления кода}}Вы можете получить доступ к членам вложенного пространства имен, используя разрешение операторы.
См. следующий код..
//для доступа к элементам namespace_name2 using namespace namespace_name1 :: namespace_name2;//для доступа к членам namespace: name1 using namespace_name1;#Discontiguous Пространства имен
Пространство имен может быть определено в нескольких частях, поэтому пространство имен состоит из суммы его отдельно определенных частей.
Отдельные части пространства имен могут быть распределены по нескольким файлам.
Итак, если одна часть пространства имен требует имени, определенного в другом файле, это имя должно все еще быть объявленным. Написание следующего определения пространства имен либо определяет новое пространство имен, либо добавляет новые элементы к существующему. См. Следующий код.
namespace namespace_name {//объявления кода}Наконец, пример пространства имен в C ++ завершен.