C++ error 2872:不明确的符号
简单地说,出现这种情况是因为程序使用的命名空间里已经有这个变量名了
以下是微软给的示例代码:
// C2872.cpp
// compile with: cl /EHsc C2872.cpp
namespace A {
int i;
}
using namespace A;
int i;
int main() {
::i++; // ok, uses i from global namespace
A::i++; // ok, uses i from namespace A
i++; // C2872 ambiguous: ::i or A::i?
// To fix this issue, use the fully qualified name
// for the intended variable.
}
解决这个问题很简单,两种方法:
1,换掉这个变量名吧,选个不那么坑爹的变量名
2,指定命名空间,这样编译器就能知道到底是哪个命名空间的变量了。