using namespace std;和std::cout可否在C++代码中合法同时使用
C++中
using namespace std;与std::前缀是否支持同时使用 二者完全支持同时使用,符合C++语法规范,你给出的示例代码可以正常运行是正常现象。
原理说明
using namespace std;的作用是将std命名空间下的所有标识符引入当前作用域,导入后你可以直接写cout调用标准输出流,不需要加前缀。- 显式加
std::前缀属于强制指定标识符归属的命名空间,这种写法不受是否导入命名空间的影响,无论有没有加using namespace std;都可以正常使用。
常见使用场景
当当前作用域存在和std命名空间重名的标识符时,加std::前缀可以明确区分目标标识符,避免歧义。比如你在代码里自定义了一个名为cout的变量,此时直接写cout调用的是你自定义的变量,写std::cout调用的仍然是标准库的输出流。
你给出的可正常运行的示例代码如下:
#include <iostream> using namespace std; int main() { std::cout << "Hello world!"; return 0; }
内容的提问来源于stack exchange,提问作者kev
相关产品推荐
相关产品推荐

