把整个namespace导入,和选择性导入,有什么情况不一样?

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:32:52
看到C++ peimer例子着重性
namespcae很少把整个std导入
都是要用多少条std命令,就using namespace std::xx什么的
把整个std导入不好吗?

你可以这样去假设:
namespace a{
public func1(){}
public func3(){}
}

namespace b{
public func1(){}
public func2(){}
}

如果
using namespace a;
using namespace b;
如果调用func1()的话,就不知道调用哪个了...
如果你在这个上下文用不到b::func1()的话...
using namespace a;
using b::func2(); // 这样就可以避免冲突了
调用func1的时候,就不会有冲突了。

其它时候的话,就没什么区别啦,主要是冲突的问题,只用到几个的话,就不要全都包进来,如果出现冲突了,还是得改。还不如一开始就避免。

很多情况下跟程序员的习惯有关吧,不过我一般都是一上来:
using namespace std;