繁体   English   中英

在 C++ 中使用命名空间

[英]using namespace in 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();
}  

使用using namespace whatever;的主要目的是using namespace whatever; 是为了避免每次想要访问其成员之一时都键入该名称空间的名称(如stdsfd )(出于节省时间和使代码看起来更简洁等原因)。 不过,您的解决方案没有问题。 有用。

但同样,为什么要使用using namespace std; 如果您最终要将std::添加到需要它的任何函数,请放在源文件的顶部?

你也可以using namespace std; 在(函数、循环等)范围内,这样它就不会污染该特定源文件的整个命名空间。

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

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

run();

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM