Это вообще необходимо?
Вы когда-нибудь задумывались, почему мы помещаем ‘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 для исходных файлов.
Что вы узнали:
- Что такое пространство имен?
- Зачем нам нужны пространства имен?
- Что означает "использование пространства имен std"?
- Недостатки использования пространства имен.
Не забудьте порекомендовать и поделиться :)