码迷,mamicode.com
首页 > 其他好文 > 详细

解决ambiguous symbol命名空间中类名、变量名冲突的问题

时间:2016-12-04 13:42:15      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:xxxx   问题   方法   特定   文件   标识符   输出   其他   names   

  最近在将一个复杂的工程集成到现有的项目中。编译时发现,有的变量名冲突了,提示就是xxxx ambiguous symbol,并且在编译输出时,指明了两个文件当中特定的变量名或者类名相同。出现这个编译错误的原因是,在工程中加载了两个头文件,这两个头文件中包含相同的类名或者变量名,解决及避免出现此类错误的方法如下:

  1. 代码库尽量包含在一个命名空间中。在我们写一个大的程序时,一些变量可能会与其他工程造成重名,所以加命名空间是很有必要的;另外,在自己的代码库中命名的类名变量名尽量以代码库的名称开头,这样大大降低和其他代码库命名冲突的可能性;
  2. 禁止在头文件中使用using namespace xxx。这很关键,头文件中使用命名空间,那么加载该头文件的文件,都加载了命名空间,造成头文件污染,正确的方法是,加头文件,但是在特定的类名前使用域标识符,如std::string;
  3. 还有一种偷懒的方法,直接在冲突的地方指定其域标识符,但是假设冲突的地方很多,那么这种方法就很麻烦了,推荐使用1和2,从根上解决问题。

  

解决ambiguous symbol命名空间中类名、变量名冲突的问题

标签:xxxx   问题   方法   特定   文件   标识符   输出   其他   names   

原文地址:http://www.cnblogs.com/jiayayao/p/6130493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!