如何避免c++中using语句造成的名称冲突

来源:互联网 发布:mac用ie浏览器 编辑:程序博客网 时间:2024/05/16 09:51

如何避免c++中using语句造成的名称冲突


使用如:using namespace std; 的using 语句确实很简便,但是这将该命名空间的所有名称都调用出来了,这就增大了名称冲突的可能性。所以有些程序员建议在头文件中不要使用using 语句,执行文件可以酌情使用,并建议使用using std::cin; 然而这样一来程序就变得复杂很多,还有一种方法,就是将using namespace std; 放到自己的命名空间中,如下图中代码所示。这样就可以鱼与熊掌兼得:既使用了using namespace std;以加快打码速度, 又避免了增加名称冲突的增加。


#include <iostream>namespace ns{void cin(void); }int main() {using namespace ns;cin();return 0;}void ns::cin(void){using namespace std;string a;std::cin >> a ; //不能直接使用cin,           //这与函数名冲突 cout << "hello " << a << endl;

}


(初学c++, 在知乎中了解到这一有趣问题,如果理解的不透彻,望前辈们指教,知乎链接: https://www.zhihu.com/question/26911239)

0 0
原创粉丝点击