Поделиться через


Использование заголовков библиотеки C++

Для включения содержимого стандартного заголовка именование его в директиве включения.

#include <iostream>   // include I/O facilities

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

Заголовок библиотеки C++ включает все другие заголовки библиотеки C++ для этого необходимо определить необходимые типы. (Всегда явно включить все заголовки библиотеки времени выполнения C++, необходимые в модуле трансляции, однако, чтобы угадываете неправильно о его фактических зависимостях). Стандартный заголовок C никогда не используется другой стандартный заголовок. Стандартный заголовок объявляет или определяет только сущности, для него в этом документе.

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

Все имена, отличных от operator delete и operator new в заголовках библиотеки C++ определены в пространстве имен std, или в пространстве имен, вложенных в пространстве имен std. Обращение к имени cin, например, как std::cin. Обратите внимание, что имена макросов не определяется указание пространства имен, поэтому всегда пишет __STD_COMPLEX без квалификатора пространства имен.

В некоторых средах перевода, включая заголовок библиотеки C++ может вызвать внешние имена, объявленные в пространстве имен std в глобальное пространство имен также, с объявлениями using отдельные для каждого из имен. В противном случае заголовок не содержит никаких имена библиотек в текущее пространство имен.

Стандарт C++ требует, чтобы заголовки C стандартные объявляют все внешние имена в пространстве имен std, а затем вызывает их в глобальное пространство имен с объявлениями using отдельные для каждого из имен. Однако в некоторых средах перевода заголовки C стандартные не включают никаких объявления пространств имен, при объявлении все имена непосредственно в глобальном пространстве имен. Таким образом, наиболее переносимый возможность работать с пространствами имен за 2 правила.

  • Хотя для объявления в пространстве имен std внешнее имя, в котором он обычно <stdlib.h>, например, содержит заголовок <cstdlib>. Известно, что имя может быть объявлен в глобальном пространстве имен.

  • Конечно, чтобы объявить в глобальном пространстве имен внешнее имя, объявленное в <stdlib.h>включите заголовок <stdlib.h> напрямую. Известно, что имя может быть объявлен в пространстве имен std.

Таким образом, если необходимо вызвать std::abort, чтобы выделить анормальное завершение, необходимо включить <cstdlib>. Если необходимо вызвать abort, необходимо включить <stdlib.h>.

Кроме того, можно написать объявление:

using namespace std;

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

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

См. также

Ссылки

Общие сведения о стандартной библиотеке C++

Потокобезопасность в стандартной библиотеке C++