首页 > 解决方案 > 在 C++ 中使用命名空间

问题描述

我已经理解为什么using namespace std;在 c++ 中被认为是不好的做法,但让我们考虑例如 2 个(假设的)库“std”和“sfd”,它们都包含一个函数“run()”。
以下是可以的还是仍然是一个问题:(
如果我想从“std”调用“run()”)

   using namespace std;  
   using namespace sfd;  
   int main(){
       std::run();
}  

(如果我想从“sfd”调用“run()”)

   using namespace std;
   using namespace sfd;
   int main(){
   sfd::run();
}  

标签: c++namespacesstdusing-directives

解决方案


没有问题,因为您在函数调用中使用了限定名称。

如果您在其调用中使用不合格的函数名称,则程序将是格式错误的,例如

run();

在这种情况下,会有歧义。


推荐阅读