这行代码是必需的吗?如果不是,为什么?它没有它的工作,但我发现了一个使用它的来源,并想知道为什么使用它。
命名空间
首先你应该明白什么是命名空间是的。 这是一个参数参考: Namespace。
实际上,命名空间就像一个容器。您可以保留不同的 符号的名称。这样,在非常大的项目中,可以定义两个具有相同名称的不同符号(例如两个函数)。
我试着给你一个小例子: 我可以定义两个不同的函数foo同名。它可能是因为我把它们放在两个不同的命名空间中。
namespace my_ns1 {
void foo(int a) {
return a;
}
}
namespace my_ns2 {
void foo(int a) {
return a + 2;
}
}
当我想打电话给第一FOO功能正常invokation 将是:
my_ns1::foo(10); // return 10
如果我要拨打的第二富功能,则:
my_ns2::foo(10); // return 12
在特定的块中,我可以指定始终使用名称空间的意图 与代码:
using namespace my_ns1;
以这种方式有没有更需要指定“全名”的功能。
标准库将其所有函数保留在适当的名称空间中:std。 所以,当你想在标准库使用功能,您有什么样调用它:
std::function(...)
如果使用代码
using namespace std;
在你的文件的开头,你”只是说“打开”该名称空间 ,并且您可以调用所有没有std的函数::
命名空间是有用的,以防止名称冲突。
[2]在我第一次尝试我忘了补充ENDL和代码工作。当我去检查时,我意识到这是失踪,为什么仍然工作呢?
只需
std::endl
是插入 '\ n' 字符,意思是 “线的端部” 的适当方式。
每个问题有一个问题。不是两个。线索的名字。问题#1在堆栈溢出已经很平常地发现了很多次。我建议坚持#2。 –
_“It's without it”_不太可能.. –
endl =终点线,例如。换行符。世界不会结束,因为一个程序在说出hello world后没有输出换行符。 –