![](/img/trans.png)
[英]why the error : “reference to fixes is ambiguous” is occurring in the code?
[英]why does the following code generate a "reference to 'tm' is ambiguous" error?
#include <iostream>
using namespace std;
namespace characters {
char tm='a';
char tc='a';
}
using namespace characters;
class table {
public:
void printline (){
char m;
m=tm;
//m=tc;
cout<<m<<m<<m<<m<<m<<m<<m<<m<<m;
}
};
int main()
{
table myTable;
myTable.printline();
return 0;
}
但是当你注释掉 m=tm; 行并恢复行 m=tc 代码工作正常。
标识符 tm 有什么特别之处?
using namespace characters;
是将characters::tm
带入全局命名空间并与全局struct tm
产生歧义的问题。 解决方案:
// using namespace characters;
using characters::tm;
这会指示编译器,如果遇到tm
,请在此处使用命名空间characters
中的tm
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.