using namespace [ns]与 using [ns]区别
using namespace [ns] 表示命名空间 [ns] 下所有的域变成可见的。
如
using namespace std;
则代码中可以用
cout<<"dddd"<<endl;< div="" style="word-wrap: break-word;">
如果是using [ns]的话,则只有ns是本身是可用的。对于ns下的域仍然必须
使用 ns.xxx
如
using std;
则代码中必须这样写
std::cout<<"xxx"<<std::endl;< div="" style="word-wrap: break-word;">
std不可以省略。
这个例子可能不是很恰当,因为std本身就是根级的命名空间,直接using std没有
发挥任何作用。
如下例子,应该更能说明问题:
using boost::asio::ip::tcp;
则使用tcp下的命名空间,就简化很多
tcp::resolver resolver(io_service);
tcp::resolver::query query(argv[1], "daytime");
如果使用using namespace的话,应该如下编码:
using namespace boost::asio::ip;
tcp::resolver resolver(io_service);
tcp::resolver::query query(argv[1], "daytime");