可以“使用命名空间 std;” 和“std::cout”一起使用吗?

kev*_*kev 1 c++ using-directives std name-lookup

using namespace std;和一起使用不会出现错误std::cout 。这两个可以一起用吗?

#include <iostream>
using namespace std;

int main() {
    
    std::cout << "Hello world!";

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Vla*_*cow 5

没有问题。在这份声明中

std::cout << "Hello world!";
Run Code Online (Sandbox Code Playgroud)

使用cout命名空间中名称的限定名称查找std

你也可以写

cout << "Hello world!";
Run Code Online (Sandbox Code Playgroud)

在这种情况下,将使用非限定名称查找,并且cout将根据指令找到该名称

using namespace std;
Run Code Online (Sandbox Code Playgroud)

您还可以包含 using 声明,例如

using std::cout;
Run Code Online (Sandbox Code Playgroud)

请注意,应避免使用 using 指令。这可能是歧义的原因。使用限定名称要好得多。