What is the use of “using namespace std”?
using namespace std的用途是什么?
我想看看外行的解释。
- 从外行的角度来说,不要这样做。这里是龙。
- YouTube.com/观看?V= XFGCEJJCD9AS
- 使用:你将要使用它。
- 名称空间:要使用什么?命名空间。
- STD:EDCOX1×5的命名空间(声明C++标准库的特性,如EDCOX1×8)或EDCOX1×9)。
编写此指令后,如果编译器看到string,它将知道您可能指的是std::string,如果它看到vector,它将知道您可能指的是std::vector。(当然,前提是在编译单元中包含了定义它们的头文件。)
如果你不写,当编译器看到string或vector时,它将不知道你指的是什么。您需要明确地告诉它std::string或std::vector,如果不这样做,您将得到一个编译错误。
当您调用using namespace ;时,该名称空间中的所有符号将变为可见,而不添加名称空间前缀。符号可以是函数、类或变量。
例如,如果添加using namespace std;,在调用命名空间std中定义的操作符cout时,可以只写cout,而不写std::cout。
这有点危险,因为名称空间是用来避免名称冲突的,通过编写using namespace,您可以节省一些代码,但会失去这一优势。更好的选择是使用特定的符号,从而使它们在没有命名空间前缀的情况下可见。如:
1 2 3 4 5 6 7
| #include <iostream>
using std::cout;
int main() {
cout <<"Hello world!";
return 0;
} |
- 简单地说,在名称查找方面,using指令和using声明之间存在细微的差异。
- @简单我想保持简单,因为OP要求用外行术语解释。
- 还值得一提的是,使用指令和使用声明也受范围的限制。使用并不是一件坏事。
- 假设您希望从std加载所有内容。如何做?仅限using std::?
- 如果您想从名称空间加载所有内容,那么应该像我在回答中所写的那样编写using namespace std。然而,你应该意识到后果,只有在你真正需要的时候才应该使用它。