为什么要尽量避免使用using namespace std

  在C++中,为了避免命名冲突,我们可以通过namespace对各个类库、方法进行分割命名空间。

  如下所示:

#include <iostream>
#include <string>

namespace fruit {
    void printColor(const std::string& name)
    {
        std::cout << "fruit name: " << name << std::endl;
    }
}

namespace vegetable {
    void printColor(const char* name)
    {
        std::cout << "vegetable name: " << name << std::endl;
    }
}

using namespace fruit;
using namespace vegetable;

int main()
{
    printColor("apple");
    printColor(std::string("apple2"));

}

运行结果:

 

 

  由于此处的两个函数的参数不一致,发生了重载。同样,如果在我们的头文件中使用了using namespace std,

就无意中导致扩大了std命名空间的影响到的域,导致std中的类、方法与其它域中同名的类、方法产生冲突混乱,

实际使用的类、方法可能并不是我们希望使用的。给调试工作带来了不必要的麻烦。

 

posted @ 2020-11-17 23:53  xnuwu  阅读(411)  评论(0编辑  收藏  举报