C++ Пространства имен namespace

Пространства имен namespace

Иногда при написании кода, особенно разными программистами могут использоваться одинаковые названия функций и переменных, чтобы не было конфликтов их можно «облачить» в пространство имен (namespace) это что-то вроде «принадлежности» к чему либо.

Например создадим пространства имен FirstNS и SecondNS внутри которых будут как одинаковые, так и разные имена функций/переменных/классов.

namespace FirstNS
{
  void Func1(){}
  int variable;
  class Person;
}

namespace SecondNS
{
   void Func1(){}
   void Func2(){}
   int variable;
   class Person;
}

Теперь внутри main:
мы можем явно указать к какому пространству имен принадлежит конкретная функция/переменная/класс.
FirstNS::Func1();
SecondNS::Func1();

Примечание:
Если мы используем только 1 пространство имен (или несколько, но знаем что конфликтов нет), то можно явно указывать какое пространство имен используется:
например: using namespace FirstNS;
в этом случае можно писать Func1(); вместо FirstNS::Func1();

Стоит отметить, что пространства имен могут быть внутри других более крупных пространств имен.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *