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!
推薦閱讀:
- C語言宏函數container of()簡介
- C語言玩轉指針之指針的高階玩法
- C++拷貝構造函數中的陷阱
- C語言結構體成員賦值的深拷貝與淺拷貝詳解
- linux內核編程container of()函數介紹