如何避免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
- 如何避免c++中using语句造成的名称冲突
- 如何在MySQL的SQL语句中避免数据唯一性冲突
- Android中ANR造成的原因以及如何避免
- mysql order by 造成语句 执行计划中Using filesort,Using temporary相关语句的优化解决
- 在单例模式中如何避免传入非Application的Context造成的内存泄漏
- 如何避免并发冲突!
- 如何避免突发的大流量访问造成服务器过载
- 如何避免使用Handler造成的内存泄漏
- 软件开发者面试百问-----在Web应用中,你怎样避免几个人编辑同一段数据所造成的冲突?
- stringbuffer拼出SQL语句,避免加号带来的引号冲突
- C语言中如何避免memset的坑
- mysql删除表中造成唯一键冲突的记录
- 如何避免javascript命名冲突
- 如何避免javascript中的冲突
- 如何避免jquery库和其它库的冲突
- 如何避免jquery库和其它库的冲突
- C语言如何中避免野指针
- C语言中如何避免野指针
- java 时间与字符串转换
- 虚拟文件系统
- 百度地图添加多个marker,给marker添加多个信息窗口
- 分页查询
- Java中parseInt()和valueOf(),toString()的区别
- 如何避免c++中using语句造成的名称冲突
- Android Studio多渠道打包
- Lnmp on Ubuntu 14.04实现多站点安装配置
- data-toggle与data-target是什么作用
- 学会发表博客
- 第几天
- 第一章:对象导言
- kafka问题: Error reading field 'topics'
- jQuery选择器课堂随笔