использование пространства имен std;в заголовочном файле - PullRequest
0 голосов
/ 21 августа 2011

Некоторые люди утверждают, что using namespace std; это плохая практика.Другие говорят, что все в порядке.Но все согласны с тем, что поместить его в заголовочный файл - это верботен.

Итак, дорогой читатель, который может объяснить это с собственного веб-сайта Бьярна Страуструпа.

http://www.stroustrup.com/Programming/Graphics/std_lib_facilities.h

ОнЯ даже не поставил его сверху, где вы могли бы это заметить, примерно на 50 строк вниз.

Что здесь происходит?Неужели вредные хакеры дискредитируют BS, разместив плохой код на своем сайте?

Ответы [ 3 ]

23 голосов
/ 21 августа 2011

Читали ли вы комментарий в начале файла?

простой заголовок курса "Программирование: принципы и практика с использованием C ++", который будет использоваться в течение первых нескольких недель ,Он предоставляет наиболее распространенные стандартные заголовки ( в глобальном пространстве имен ) и минимальную поддержку исключений / ошибок.

Ученики: пожалуйста, пока не пытайтесь понять детали заголовков.Все будет объяснено.Этот заголовок в основном используется для того, чтобы вам не приходилось понимать каждую концепцию сразу.Пересмотрено 25 апреля 2010: добавлен simple_error ()

Идея состоит в том, чтобы вы могли начать работу с языком, не изучая пространства имен первого дня и не заботясь о том, какие стандартные заголовки нужно включать для чего.

3 голосов
/ 21 августа 2011

Поскольку это заголовок курса, я думаю, что студенты должны включить его, а затем использовать большую часть стандартной библиотеки. Я удивлен, что Страуструп учит этому так (на мой взгляд, это все еще плохая практика), но это означает, что у него есть один синтаксис, который нужно объяснить своим ученикам. Я не думаю, что какие-либо приложения, не относящиеся к курсовой работе (или, что еще хуже, библиотеки), должны включать его, так что это возможно несколько приемлемо.

Я все еще думаю, что это очень плохой стиль, и то, что сказать, что стандартные вещи должны иметь префикс std::, было бы лучше.

0 голосов
/ 21 августа 2011

Во-первых, это учебный материал и, следовательно, далеко не то же самое. Во-вторых, и что? Каждый делает ошибки или поддерживает старые заголовки. И в-третьих, то, что вы изобрели язык, не делает вас постоянным мастером всего, особенно когда есть комитет по стандартам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...