C++ 作用域符號:: 常用三種方式
阿新 • • 發佈:2019-02-19
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的成員函式。例如
01 class CA {
02 public:
03 int ca_var;
04 int add(int a, int b);
05 int add(int a);
06 };
07
08 //那麼在實現這個函式時,必須這樣書寫:
09 int CA::add(int a, int b)
10 {
11 return a + b;
12 }
13
14 //另外,雙冒號也常常用於在類變數內部作為當前類例項的元素進行表示,比如:
15 int CA::add(int a)
16 {
17 return a + ::ca_var;
18 }
19
20 //表示當前類例項中的變數ca_var。