c++中使用命名空间的关键字

Keyword using namespace in C++

本文关键字:关键字 命名空间 c++      更新时间:2023-10-16

是否存在一个逻辑原因,即在关键字using namespace之后,我们不能在名称空间中调用例如myfunction和名称空间外的另一个函数myfunction(具有相同的原型),但我们可以为变量(名称空间中的myvariable和外部的myvariable)拥有它?

当然,您可以在不同的名称空间中使用具有相同名称和签名的函数——这是名称空间存在的部分原因。唯一需要考虑的是,如果要调用它,必须限定它的名称。

namespace Foo {
    void func();
}
namespace Bar {
    void func();
}
using namespace Foo;
using namespace Bar;
func(); // does not compile -- which func()?
Foo::func(); // ok
Bar::func(); // ok