【C++】 为什么建议代码尽量不要使用 using namespace std

using namespace std;

首先我们要知道,这句代码的意思是:打开标准命名空间 的名字是std。
namespace 的引用是为了解决不同space中命名相同导致命名冲突的问题,而using namespace …的引用可以有效提高程序员写代码的效率,这些都和性能无关。
只是在std 标准空间里,包含了原来的库和头文件。但是在C++ 中因为我们要使用的STL中有部分名称是没有加下划线的保留标记的,而这些名称如果再用在自己的源代码中 就会引发未定义的后果。

所以当我们在写成熟的代码的时候,一般不建议将标准命名空间全部打开,而是需要用库里的什么就打开什么。这就有效的防止了命名冲突

完全打开std 命名空间

需包含< iostream>头文件,再用using namespace std; 打开即可。

#include 
using namespace std;        
int main()
{
	cout << "hello " << endl;      
	system("pause");
	return 0;
}
只打开std 部分空间

需包含< iostream>头文件,再用using std::(名称) 打开需要的函数即可。

#include
using std::cout;               // 1 
using std::endl;             // 1   提前打开需要的名字

void func()
{
	cout << "world " << endl;       //若不在1 处打开endl,则编译不通过
	//std::cout<<"world"<

文件尽量不使用,头文件中禁用

我不建议在头文件中使用 using namespace xxx 语句,不仅是对std空间。
如果头文件a.h使用了该语句,那么所有与a.h有关系的文件都会默认使用该语句,也就是说引用a.h头文件的都被迫using了,所以引用头文件的越多就会越容易导致命名冲突。

那如果实在是懒的将需要使用std中的函数名一一列举,也是可以使用的,只要你编译没有问题就可以啦!!毕竟C++库中的类型名基本都是小写,多用心也是可以避免命名冲突的问题~~

博主目前的理解只能到这里啦,如果之后有更深的理解,我会更新的~
其他大佬若有其他意见,欢迎留言讨论。。

你可能感兴趣的:(C++,/,数据结构)