C++的雙冒號

轉載地址:

http://blog.sina.com.cn/s/blog_542bad910102vib1.html

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。

發佈了1 篇原創文章 · 獲贊 31 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章