使用C++库标头

通过将其命名为包括标准标头内容中包括指令。

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

可以按任意顺序多次包括标准标头,标准标头,或者定义同一宏或同一类型的两个或多个条件标头。不要包含在声明中的标准标头。不要定义的名称与关键字的宏,在包括标准标头之前。

对 . C++ 它需要定义所需的类型库标头包含任何其他 C++ 库标头。但是,(请显式始终包括在翻译单元需的任何 C++ 库标头,唯恐的错误来源有关其实际依赖关系。)标准 C 标头不包括其他条件标头。标准标头声明或定义为它所描述的仅限于 entity 文档中。

每个功能在库中在标准标头声明。不同于在标准 C 中,标准标头从不提供一个掩码宏的名称和掩码函数声明并获得相同的效果的功能相同。有关 mask 宏的更多信息,请参见 C++库约定

除了 operator deleteoperator new 之外的所有名称在 C++ 库标头定义在 std 命名空间,或在 std 命名空间内嵌套的命名空间。要引用该名称 cin,例如,为 std::cin。但是,请注意,宏名不受命名空间限定的,因此总是您未命名空间限定符的编写 __STD_COMPLEX

在某些转换环境中,由 c. C++ 库标头可以卷扬在 std 命名空间声明的外部名称到全局命名空间,每一个的各个 using 声明名称。否则,该标头 引入任何库命名为当前命名空间。

C++ 标准要求 C 标准标头声明命名空间 std的所有外部名称,然后卷扬到使用各个 using 声明的全局命名空间中每个的名称。但是,在某些转换环境 C 标准标头不包括命名空间声明,声明所有名称直接在全局命名空间。因此,最可移植的方式处理命名空间将遵循两条规则:

  • 例如,的外部名称,确定声明命名空间 std 在 <stdlib.h>传统上声明包含该标头 <cstdlib>。了解该名称在全局命名空间还可以声明。

  • 确定声明在全局命名空间 <stdlib.h>声明的外部名称,请直接包含该标头 <stdlib.h>。了解该名称在命名空间 std可能同时声明。

因此,因此,如果要调用 std::abort 导致异常终止,您应该 <cstdlib>。如果要调用 abort,您应该 <stdlib.h>。

或者,您可以编写该声明:

using namespace std;

要使所有库名访问当前命名空间。如果编写立即此说明,在所有包含指令后,您卷扬名称到全局命名空间。其后可以忽略该翻译单元的其余部分的命名空间注意事项。您还可以避免在不同的翻译环境中的大多数差异。

除非否则明确指出,您不能定义名称。std 命名空间,或在 std 命名空间内嵌套的命名空间,在程序中。

请参见

参考

标准C++库概述

线程安全性对标准C++库中