C++ 雙冒號::符號詳解

一、作用域符號:

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

例如:A,B 表示兩個類,在 A,B 中都有成員 member。

那麼:

 1、A::member就表示類A中的成員member。
 2、B::member就表示類B中的成員member。

二、全局作用域符號:

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

char  a;  //全局變量
void  test()
{
  char  a; //全局變量
  char(局部變量) = char(局部變量)*char(局部變量);
  ::char(全局變量) =::(全局變量) *char(全局變量)
}

三、作用域分解運算符:

:: 是 C++ 裡的作用域分解運算符,“比如聲明瞭一個類 A,類 A 裡聲明瞭一個成員函數 void f(),但沒有在類的聲明裡給出f的定義,那麼在類外定義 f 時,就要寫成 voidA::f(),表示這個 f() 函數是類 A 的成員函數。例如:

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。

到此這篇關於C++ 雙冒號::符號詳解的文章就介紹到這瞭,更多相關C++ 雙冒號內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: