1

在使用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;
}
  • 有多个未命名的命名空间时如何避免名称冲突?

谢谢你。

4

0 回答 0