C++中 ::的作用


雙冒號 :: 操作符被稱為域操作符(scope operator),含義和用法如下:

1.在類外部聲明成員函數。void Point::Area(){};

2.調用全局函數;表示引用成員函數變量及作用域,作用域成員運算符 例:System::Math::Sqrt() 相當於System.Math.Sqrt()。

3.調用類的靜態方法: 如:CDisplay::display()。 把域看作是一個可視窗口全局域的對象在它被定義的整個文件里,一直到文件末尾都是可見的。在一個函數內被定義的對象是局域的(local scope), 它只在定義其的函數體內可見。每個類維持一個域,在這個域之外 ,它的成員是不可見的。類域操作符告訴編譯器后面的標識符可在該類的范圍內被找到。

 

1、 作用域符號 :: 的前面一般是類名稱,后面一般是該類的成員名稱,C++為例避免不同的類有名稱相同的成員而采用作用域的方式進行區分

      如:A,B表示兩個類,在A,B中都有成員member。那么      A::member就表示類A中的成員member      B::member就表示類B中的成員member

 2、 全局作用域符號:當全局變量在局部函數中與其中某個變量重名,那么就可以用 :: 來區分如

       char    zhou;    //全局變量

       void    sleep()

   {

        char    zhou;    //局部變量

        char(局部變量) = char(局部變量) *char(局部變量) ; 

       ::char(全局變量) =::char(全局變量) *char(局部變量);

    }

 3、 :: 是C++里的“作用域分解運算符”

       比如聲明了一個類A,類A里聲明了一個成員函數voidf(),但沒有在類的聲明里給出f的定義,那么在類外定義f時,就要寫成voidA::f(),表示這個f()函數是類A的成員函數。例如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class  CA {
public :
   int  ca_var;
   int  add( int  a, int  b);
   int  add( int  a);
};
 
//那么在實現這個函數時,必須這樣書寫:
int  CA::add( int  a, int  b)
{
   return  a + b;
}
 
//另外,雙冒號也常常用於在類變量內部作為當前類實例的元素進行表示,比如:
int  CA::add( int  a)
{
   return  a + ::ca_var;
}
 
//表示當前類實例中的變量ca_var。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM