использование пространства имен Почему?

Я новичок в программировании на C++, и мы используем Turbo C++ (старая IDE) для компиляции наших программ. Проблема в том, что в Turbo C++ мы никогда не используем пространства имен или даже std::cout при программировании. Мы просто набираем cout‹‹.... для вывода.

Недавно я начал использовать Visual C++ 2010 для написания своих программ, и мы предположительно должны использовать здесь «использование пространства имен std» или «std::». Но я получил вывод, даже когда использовал только cout‹‹..... и не использовал «использование пространства имен std» (компилятор показал ошибку, но получил вывод).

Поэтому я не понимаю использование пространств имен. Может ли кто-нибудь помочь мне?

С уважением!


person Krishna    schedule 06.04.2011    source источник


Ответы (3)


Пространства имен просто позволяют программисту избежать конфликтов имен конструкций. Таким образом, я могу использовать несколько библиотек, при этом отдельные библиотеки не должны беспокоиться о том, что их классы имеют одно и то же имя. Java делает что-то подобное с пакетами, а C# делает что-то подобное, что они тоже называют пространствами имен.

Синтаксис using namespace просто означает, что компилятор должен искать в этом пространстве имен все, что он не может найти объявленным в текущей области.

Если вы не вынуждены использовать полное имя std:: или синтаксис using namespace, то, вероятно, что-то в вашей программе уже включает его, возможно, в файле #includeed.

person digitlworld    schedule 06.04.2011

По-видимому, вы всегда использовали (предварительно скомпилированный) (заголовок), содержащий «использование пространства имен std»; Это стандарт ANSI C++, который требует, чтобы стандартная библиотека находилась (и всегда была) в пространстве имен std.

person sehe    schedule 06.04.2011
comment
Нет, компилятор настолько старый (около 1993 года для Turbo C++ 3.0), что он нестандартен. Все находится в глобальном пространстве имен. Это реликвия. - person jonsca; 06.04.2011
comment
Что... у них тогда была STL? Почему мне раньше не сказали :) - person sehe; 06.04.2011

Пространства имен полезны при определении того, какой класс использовать. Скажем, ваша программа имеет класс под названием «Образец». У вас также есть одна или несколько библиотек DLL, в которых определен класс «Образец».

Когда вы создаете новый экземпляр «Образца», как он узнает, какую реализацию использовать? Вы используете пространство имен, чтобы различать тип, который должен быть создан.

person Tejs    schedule 06.04.2011