using声明和using指示
using声明(using declaration)
using namespacename::namespacemember;
using声明一次只引入命名空间的一个成员。从效果上看就好像using声明语句为命名空间的成员在当前作用于内创建了一个别名一样。
using指示(using directive)
using namespace namespacename;
using指示令整个命名空间的所有内容变得有效。从效果上看,using指示的命名空间好像是定义在最近的外层作用域中。
1 namespace blip{ 2 int i = 16, j = 15, k = 23; 3 } 4 5 int j = 0; 6 void manip() 7 { 8 using namespace blip; 9 ++i; //将blip::i设定为17 10 ++j; //错误:全局的j还是blip::j? 11 ++::j; //正确:将全局的j设定为1 12 ++blip::j; //正确:将blip;:j设定为16 13 int k = 97; //局部的k隐藏了blip::k,因为 14 //using指示就好像在manip之前的 15 //全局作用域定义了内容 16 ++k; //这个k是98 17 ++blip::k; //局部定义过后就得用原本的方 18 //式来操作blip的k,这里k为24 19 }