C++中的雙冒號作用


1、

作用域符號::的前面一般是類名稱,后面一般是該類的成員名稱,C++為例避免不同的類有名稱相同的成員而采用作用域的方式進行區分
如:A,B表示兩個類,在A,B中都有成員member。那么
      A::member就表示類A中的成員member
      B::member就表示類B中的成員member 

 

2、

全局作用域符號:

例如:

 

#include <stdio.h>

int count = 0; //全局變量 0

void main()
{
 
 int count = 10; //局部變量10
 
 printf("count =%d\n",count);//局部變量屏蔽了全局變量 所以輸出結果是10
 {
  int count = 20;
  
  printf("count =%d\n",::count); //作用域符號指出引用全局變量0
  //::sort
 }
}


作為全局作用域符號,雙冒號要放在開頭。這和linux下的文件路徑類似,“/”放在開頭表示絕對路徑,放在中間表示子目錄。

::符號既可以指定類,也可以指定變量和命名空間:

如果函數放在全局,就是全局函數
如果變量定義在全局,就是全局變量
如果一個命名空間放在全局,就是全局命名空間。

3、

 

另外,雙冒號也常常用於在類變量內部作為當前類實例的元素進行表示:

 

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