Это вообще необходимо?

Вы когда-нибудь задумывались, почему мы помещаем ‘using namespace std’ в начало нашего кода на C ++. Что такое пространство имен? Действительно ли необходимо упоминать об этом, как мы упоминаем файлы заголовков в нашем коде. В этой статье мы постараемся получить ответ на эти вопросы.

Во-первых, давайте разберемся, что такое «пространство имен»!

Что такое пространство имен?

Это контейнер для набора идентификаторов. Он обеспечивает уровень направления к определенным идентификаторам, что позволяет различать идентификаторы с одним и тем же точным именем. Например, фамилию можно рассматривать как пространство имен, которое позволяет различать людей с одинаковым именем. Для получения дополнительной информации перейдите по этой ссылке.

Зачем нам нужны пространства имен?

Предположим, есть две библиотеки с именами A и B, в обеих есть функция get_data. Вы включили эти две библиотеки в свой код. Теперь вы вызываете функцию get_data, тогда компилятор не знает, какую из них вызывать, и вы получите сообщение об ошибке. Теперь, как мы можем исправить эту проблему. В языке C мы можем исправить это, добавив префикс в начало каждой функции, такой как A_get_data и B_get_data, но это болезненно. Решение этой проблемы приходит в C ++ в форме пространства имен. Это более гибкий способ добавления префиксов. Итак, теперь вы можете вызывать функции как A :: get_data и B :: get_data, где :: - оператор разрешения области действия.

Теперь перейдем к вопросу, что делает "using namespace std" ???

Почему мы упоминаем это в нашем коде?

Теперь предположим, что в приведенном выше примере, если вы собираетесь использовать кучу кода библиотеки A, то будет утомительно добавлять префикс каждый раз при вызове функций библиотеки A. Тогда каково решение этой проблемы

вот решение: вы можете добавить «using namespace A» в начало файла, а затем просто вызвать get_data без использования префикса A для остальной части кода.

Обязательно ли упоминать "using namespace std"?

Ответ большой НЕТ.

Пространство имен std является особенным. Подпрограммы встроенной библиотеки C ++ хранятся в стандартном пространстве имен. Это включает в себя такие вещи, как cout, cin, string, vector, map и т. Д. Поскольку эти инструменты используются так часто, популярно добавлять «using namespace std» в верхней части исходного кода, чтобы вам не приходилось вводить std :: prefix постоянно. Это только облегчает нашу задачу, в этом нет необходимости.

cout << “Hello world.” << endl;  // Here it is necessary to put ‘using namespace std’ on the top of code.
std::cout << “Hello world.” << std::endl; // Here there is no need to put ‘using namespace std’ on the top of code.

Недостатки использования пространства имен

Профессиональные программисты считали плохим тоном помещать объявления using namespace в файлы заголовков. Это заставляет всех участников этого заголовочного файла использовать это пространство имен, что может привести к неоднозначности имен, которую трудно исправить. Это называется загрязнение пространства имен. Вместо этого всегда используйте имена с полным префиксом в файлах заголовков (std :: string, а не string) и сохраняйте объявления using для исходных файлов.

Что вы узнали:

  1. Что такое пространство имен?
  2. Зачем нам нужны пространства имен?
  3. Что означает "использование пространства имен std"?
  4. Недостатки использования пространства имен.

Не забудьте порекомендовать и поделиться :)