C++ 冒号运算符

来源:互联网 发布:域账号取消挂载网络盘 编辑:程序博客网 时间:2024/05/15 23:49

 1.::域作用符,用来引用全局的变量、函数等  
  比如     
  int   i   =   0;   
  void   test()   

     int   i   =   3;   
      cout<<i;                      //输出函数中的局部变量i   
      cout<<::i;                   //输出全局变量i  
  }
2. 域作用符,用来引用特定的函数或变量。比如说对类中的全局变量的引用;引用上一作用域对象(变量)。
3. 作用域运算符,指定某个范围内的成员,比如  
  class  {  
  public:  
        int   bbb();  
        //可以在类里面定义bbb,当你在类外面定义的时候就要指定他是属于哪个类的成员函数  
  };  
  int   A::bbb()  

         cout   <<   "类的外部定义";  
  }  
  如果没有int  A::bbb()只是写了int   bbb()的话就会说bbb没有声明,会出错的
4.最重要的一点:名称是作用域解析运算符"::".  
  下面让我们来了解名字空间的含义  
  名字空间是一种逻辑分组的机制.也就是说,如果有一些声明按照某种标准在逻辑上属于同一个集团,就可以将它们放入同一名字空间,以表明这个事实,例如,我定义一个名字空间N   将变量a,   b   函数f()放入其中    
  int   a;  
  namespace   N{  
  int   a,   b;  
  void   f(){  
      ::a=1;                     //(被屏蔽的)全局a的限定名  
        a=10;                     //非限定名访问内层a  
     }  
}  
   
  void   g()   {  
      a=10;                       //全局的a  
      N::a=7;                   //名字空间N作用域中的a(限定名)  
 }  
  位于作用域解析运算符左边的限定符必须或者是一个名字空间的名字,或者是一个类对象的名字,  
  这也意味着,局部于某个函数的名字不能通过限定名的方式访问

5. 单冒号

  class Test{

          public:

                static int a

  }定义一个类,使用a的时候就可以Test::a表示a是Test里面的成员!

   又比如:class Parent{};

                   class Child: public Parent

                   {}  表示Child从Parent 公有地继承下来!

总结:

    “:”一般用在继承类的时候;

   而“::”用在类外函数编写,或者类外成员调用等。

原创粉丝点击