Как мне найти «ключевое слово пространства имен» включенного файла? - PullRequest
1 голос
/ 14 августа 2011

Я начинающий программист C ++.Как я могу узнать пространство имен (это правильное слово в этом контексте?) Для включения, например 'iomanip' или любого другого?При использовании 'std :: cout' я не знаю, почему это 'std' , а не что-то еще.

Надеюсь, мой вопрос ясен и стоитспрашиваю.

PS: Мой первый пост здесь:)

Ответы [ 3 ]

5 голосов
/ 14 августа 2011

Как вы узнали, что cout существовал в первую очередь?

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

Как правило, все, что является частью стандартной библиотеки C ++, находится в stdпространство имен, но некоторые вещи вполне могут находиться в пространстве имен, вложенном в него.Известные примеры вложенных пространств имен: std::placeholders и std::chrono.Но вам будет сообщено правильное пространство имен, если вы прочитаете хорошую ссылку.

Благодаря @Potatoswatter: другие конструкции, которые используют тот же синтаксис разрешения области действия, являются статическими константами классов.Например, класс std::ios_base содержит тип статического члена seekdir со значениями статической константы beg, cur и end;к ним можно получить доступ через std::ios_base::beg и т. д. Или, поскольку тип std::ios наследуется от ios_base, через std::ios::beg и т. д.

Во многих отношениях класс с только статическими членами является просто прославленнымпространства имен, и в первые дни C ++ люди часто использовали вложенные классы для «симуляции» вложенных пространств имен, которые не были доступны в то время.Синтаксис разрешения области одинаков.

2 голосов
/ 14 августа 2011

Для доступа к функциям, объявленным в библиотеке iostream, мы используем пространство имен, которое представляет собой не что иное, как набор идентификаторов (имен переменных и некоторых других типов имен), принадлежащих группе или семейству.

Сейчас std - это пространство имен, к которому принадлежат все идентификаторы в стандартной библиотеке c ++.Есть 2 способа обратиться к определенному идентификатору, который принадлежит пространству имен:

  1. использовать оператор using в начале программы
  2. префикс идентификатора с именем пространства имен, за которым следуетна 2 двоеточия, например std::cout<<"hello";
2 голосов
/ 14 августа 2011

Это std, потому что cout и т. Д. Находятся в стандартной библиотеке, а вся стандартная библиотека находится в пространстве имен std.

Другие библиотеки, вероятно, будут иметь свое собственное пространство имен (например, Boost находится внутри пространства имен boost). Но вам нужно ознакомиться с соответствующей документацией, чтобы узнать подробности!

...