'使用'和'使用命名空间'之间的区别

Osp*_*pho 15 c++ namespaces

在boost库中,通常有包含库的示例:

#pragma once
#include <boost/property_tree/ptree.hpp>
using boost::property_tree::ptree;
Run Code Online (Sandbox Code Playgroud)

在我的整个程序中,我一直在导入这样的命名空间:

#include "../MyClass.h"
using namespace MyClassNamespace;
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下:

  1. using和之间的区别using namespace;
  2. 否定使用有using namespace利于什么的优点using;
  3. 前瞻性的差异usingusing namespace;

谢谢

Geo*_*tis 25

using namespace 使命名空间的所有名称可见,而是在命名空间using的特定对象上声明只使该对象可见.


小智 6

#include <iostream>

void print(){
using std::cout; 
using std::endl;
cout<<"test1"<<endl;
}
int main(){
 using namespace std;
cout<<"hello"<<endl;
print();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
  • 当使用“using namespace std”时,std 范围内的所有元素都在函数范围内可用。
  • 在使用“using std::cout”时,我们明确提及函数需要 std 下的哪些元素,而不导入 std 下的所有元素。

这是我在堆栈溢出中的第一个答案,如果我错了请纠正我!