在使用namespaces
时,避免名称冲突确实是一件好事。但重要的是我:使用anonymous namespaces
.
在我的示例中,出于某种原因,我定义了两个未命名的命名空间,并且意外地这两个具有相同签名的成员函数。我想在命名空间之外定义这两个。
namespace {
void foo(); // to be defined outside in somewhere else
int x = 0; // I want the above foo() to increment x
}
namespace {
void foo(); // to be defined outside in somewhere else
// I want foo to do something else
}
// Here is my guess how to define a function outside Anonymous NS.
void ::foo() {
cout << "::foo()" << endl;
}
// void foo(){
// cout << "foo()" << endl;
//}
int main(){
foo();
::foo();
cout << endl;
cin.get();
return 0;
}
- 有多个未命名的命名空间时如何避免名称冲突?
谢谢你。