using关键字

来源:互联网 发布:广州市知用中学 编辑:程序博客网 时间:2024/05/21 06:58

using关键字
  1、using声明与using指示符:前者是声明某名字空间内的一个成员,后者是使用整个名字空间。例如:

      代码:
            using std::map; // ok,using声明
            using namespace std; //ok,using指示符

  2、该using指示符语句可以加在程序文件的几乎任何地方,包括文件开头(#include语句之前)、函数内部。不过用using指定的名字空间作用域(生命周期)受using语句所在位置的生命周期约束。如,函数内部使用“using namespace myspacename;”则 myspacename仅在该函数内部可见。


  3、可以用using语句指定多个名字空间,使得多个名字空间同时可见。但这增加了名字污染的可能性,而且只有在使用各名字空间相同成员时由多个using指示符引起的二义性错误才能被检测到,这将给程序的检测、扩展、移植带来很大的隐患。因此,因该尽量使用using声明而不是滥用using指示符。

 

使用实例:


  1、当为私有或为保护访问时,用using在子类中声明基类的公有成员后,在成员在子类中认为共有。

 

       如果子类私有或保护继承自基类,那么此时子类的对象是不能调用基类公有的成员的。
       class CBase
      {
            public print();
       };
       class CChild : private CBase
      {
            public:
            using CBase::print(); //用了这句声明,main() is OK, 否则main中child 就不能调用print
       }
       void main()
      {
            CChild child;
            child.print();
      }

  2、参见:boost:pool 一实例

原创粉丝点击