using namespace std;
包含什么?
由于IOstream头文件中存在所有与IO相关的函数,为什么我们应该同时使用IOStream和Std命名空间?
答案 0 :(得分:1)
命名空间允许在名称下对类,对象和函数等实体进行分组。 这样,全局范围可以划分为“子范围”,每个范围都有自己的名称。
命名空间的格式为:
namespace identifier
{
entities
}
例如
// using
#include <iostream>
using namespace std;
namespace first
{
int x = 5;
int y = 10;
}
namespace second
{
double x = 3.1416;
double y = 2.7183;
}
int main () {
using namespace first;
cout << x << endl;
cout << y << endl;
cout << second::x << endl;
cout << second::y << endl;
return 0;
}
中详细了解相关信息
答案 1 :(得分:1)
除了此处的其他答案外,重要的是要注意使用声明和使用指令之间的区别。
using namespace std;
是 using指令,并且允许在没有限定条件的情况下使用该命名空间中的所有名称。例如:
using namespace std;
string myStdString;
cout << myStdString << endl;
这与:
相反using std::string;
是使用声明并允许使用指定命名空间中的特定名称而无需限定。以下内容无法编译:
using std::string;
string myStdString; // Fine.
cout << myStdString << endl; // cout and endl need qualification - std::
using
关键字受范围约束:
void Foo()
{
{
using namespace std;
string myStdString; // Fine.
}
string outOfScope; // Using directive out of scope.
std::string qualified; // OK
}
将一个using指令放在头文件的全局范围内通常是个坏主意 - 除非您确定包含该文件的任何内容都不会包含冲突的类名,并产生令人讨厌的副作用。
答案 2 :(得分:0)
命名空间允许我们在名称下对一组全局类,对象和/或函数进行分组。如果您指定using namespace std
,那么您不必在代码中放置std::
。程序将知道在std库中查找对象。命名空间std包含标准C ++库的所有类,对象和函数。