почему использование директивы в C++ не поощряется?

Я считал, что использование директивы не поощряется в C++, говорящем никогда помещаемые директивы использования в заголовочных файлах. Почему похож на это это? Какая-либо подсказка для меня?

Спасибо!

10
задан skydoor 6 January 2010 в 19:54
поделиться

4 ответа

использование пространства имен x; - очень плохая идея, поскольку вы понятия не имеете , какие имена импортируете, даже со стандартной библиотекой.

Однако: с использованием std :: cout; и аналогичные операторы - очень хорошая идея, потому что они явно импортируют символы и делают код более читаемым (хотя это все еще может быть хорошая идея поместить их в глобальную область видимости в файлах заголовков).

3
ответ дан 4 December 2019 в 01:01
поделиться

Аналогично нет объявлению статических переменных в заголовочных файлах. Добавление оператора использования в заголовочных файлах приведет к тому, что пространство имён появится в .cpp-файлах, включающих заголовочный файл. В этом нет необходимости. В худшем случае, вам может потребоваться изменить имена некоторых переменных или функций в .cpp, чтобы избежать конфликтов именования

.
0
ответ дан 4 December 2019 в 01:01
поделиться
[

] Если вы говорите о директиве 'using', то причина отказа от ее использования заключается в том, что если вы скажете [

] [

][], используя пространство имен std;[][

] [

]в заголовочном файле, то все файлы, #включая этот заголовок, будут вынуждены использовать это пространство имен, и это может вызвать проблемы. [

]
5
ответ дан 4 December 2019 в 01:01
поделиться
[

] Потому что это может нарушить рабочий код при попытке добавить ваш заголовок, если ваше пространство имен заголовка попирает другое пространство имен, определенное в работающем вставном коде.[

].
3
ответ дан 4 December 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: