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 }

 

相关文章:

  • 2021-11-04
  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2022-12-23
  • 2021-12-13
猜你喜欢
  • 2021-10-31
  • 2021-06-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2021-07-09
相关资源
相似解决方案