C++ std命名空间

C++ std命名空间教程

C++ 中 std 命名空间 是 C++ 中标准库类型对象的命名空间。我们常用的输入和输出 函数 都是定义在 std 命名空间中的,因此,我们需要使用输入和输出,必须要引入 std 命名空间。

要引用一个命名空间中的内容,有三种方法,分别为使用 using 引入命名空间、使用 using 限定符和直接使用命名空间限制访问。

using引入命名空间

语法

using namespace std; // cout

说明

我们直接使用 using 完全引入了 std 命名空间,接下来,我们就可以直接使用 std 命名空间中的所有内容了。

使用using限定符

语法

using std::cout; using std::cin; // cout // cin

说明

这里,我们仅仅使用了 using 引入了 std 命名空间中的 cout 和 cin ,因此,我们接下来在使用 cout 和 cin 时,不再需要使用命名空间了。

显式引用

语法

//std::cout //std::cin

说明

我们直接使用 std:: 的形式,显式的指定我们使用的 cout 是 std 命名空间的,使用的 cin 也是 std 命名空间的。

C++ std命名空间详解

我们使用的输入输出函数都是定义在 std 命名空间中的,我们可以在 dev-c++ 开发环境中,打开 iostream 头文件,接着,我们可以看到 std 命名空间,如下:

22_C std命名空间.png

我们可以看到,这里使用了 namespace 定义了 std 命名空间,接着,往下看,我们可以看到,如下代码:

23_C std命名空间.png

从这里,我们可以看出,cin、cout、cerr 和 clog 都是定义在 std 命名空间中的。

案例

C++ using引入命名空间

使用 using 完全引入了 std 命名空间

#include <iostream> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; cout << "haicoder" << endl; cerr << "Hello HaiCoder" << endl; return 0; }

程序运行后,控制台输出如下:

24_C std命名空间.png

我们直接使用了 using 引入了整个 std 命名空间,接下里,我们就可以直接使用 std 命名空间中的所有内容了。

使用using限定符

使用 using 限定符,引入 std 命名空间指定内容

#include <iostream> using std::cout; int main() { std::cout << "嗨客网(www.haicoder.net)\n" << std::endl; cout << "haicoder" << std::endl; std::cerr << "Hello HaiCoder" << std::endl; std::clog << "Hello C++" << std::endl; return 0; }

程序运行后,控制台输出如下:

25_C std命名空间.png

我们使用了 using 仅仅引入了 cout,因此,接下来,我们使用 cout 时,不需要再指定命名空间了,但使用 cerr 和 clog 时,必须显式指定命名空间,不然会报错。

使用命名空间限制访问

直接使用命名空间,限制访问

#include <iostream> int main() { std::cout << "嗨客网(www.haicoder.net)\n" << std::endl; std::cout << "haicoder" << std::endl; std::cerr << "Hello HaiCoder" << std::endl; std::clog << "Hello C++" << std::endl; return 0; }

程序运行后,控制台输出如下:

26_C std命名空间.png

这次,我们没有使用任何的 using 引入命名空间,而是直接使用了命名空间限制说明了我们访问的命名空间的内容。

C++ std命名空间教程

在 C++ 中 std 命名空间是 C++ 中标准库类型对象的命名空间。我们常用的输入和输出函数都是定义在 std 命名空间中的,因此,我们需要使用输入和输出,必须要引入 std 命名空间。

要引用一个命名空间中的内容,有三种方法,分别为使用 using 引入命名空间、使用 using 限定符和直接使用命名空间限制访问。