C++ 关于std:cout in C++;

C++ 关于std:cout in C++;,c++,gcc,std,C++,Gcc,Std,此代码中是否有错误: #include <iostream> using namespace std; int main() { std:cout << "hello" "\n"; } #包括 使用名称空间std; int main() { std:cout您正在定义一个标签std,然后您正在调用cout。这是合法的,因为您已使用命名空间std;没有错误。我可以重写您的代码以使其更清晰: #include <iostream> using name

此代码中是否有错误:

#include <iostream>
using namespace std;

int main()
{
    std:cout << "hello" "\n";
}
#包括
使用名称空间std;
int main()
{

std:cout您正在定义一个标签
std
,然后您正在调用
cout
。这是合法的,因为您已使用命名空间std;

没有错误。我可以重写您的代码以使其更清晰:

#include <iostream>
using namespace std;

int main()
{
std:
    cout << "hello" "\n";
}
#包括
使用名称空间std;
int main()
{
标准:
cout代码有问题。
在试图指示编译器使用名称空间std时,我们试图调用std范围内定义的函数cout

因此,正确使用范围解析运算符是非常重要的

    'std::cout '
而不是

    std:cout.
也有人指出, 通过写作

    std:

您要做的是创建一个标签。

因此,为了澄清,您的问题是关于带1个冒号的
std:cout
,而不是关于
“hello”“\n”
没有
另一个很好的例子是
如何使用名称空间std;
会损害你的代码,并混淆一些琐碎的错误。@李斯特:你可以这样做。它会自动连接字符串。@NeilKirk我知道这一点,但一些答案集中在代码的这一部分,现在被否决。@πάνταῥεῖ Pfff,任何语言结构,一旦被滥用,都会使代码变得模糊。运算符重载任何人?如果你真的想抱怨这个程序,就抱怨OP是如何设置使用
goto
。我的意思是,为什么还要引入标签?这样以前使用的
std
标识符就可以重新用作标签?@user2029077 label names与其他名称完全不同。与其说是“重用”,不如说是独立使用。