C++ 中的作用域解析運算子


:: (作用域解析)運算子用於獲取因變數作用域而隱藏的名稱,以便你仍然可以使用它們。作用域解析運算子既可以用作一元運算子,也可以用作二元運算子。如果名稱空間範圍或全域性範圍名稱在塊或類中被等效名稱的特定宣告隱藏,則可以使用一元作用域運算子。例如,如果您有名稱為 my_var 的全域性變數和名稱為 my_var 的區域性變數,則需要使用作用域解析運算子才能訪問全域性 my_var。

示例

#include <iostream>  
using namespace std;  

int my_var = 0;
int main(void) {
   int my_var = 0;
   ::my_var = 1;  // set global my_var to 1
   my_var = 2;    // set local my_var to 2
   cout << ::my_var << ", " << my_var;
   return 0;
}

輸出

這將生成以下輸出 -

1, 2

在 main 函式中宣告的 my_var 宣告隱藏了在全域性名稱空間範圍內宣告的整型 my_var。語句 ::my_var = 1 訪問了在全域性名稱空間範圍內宣告的名稱為 my_var 的變數。

您還可以使用作用域解析運算子來使用類名或類成員名。如果類成員名被隱藏,則可以透過在其名前加上類名和類作用域運算子來使用它。例如,

示例

#include <iostream>
using namespace std;
class X {
   public:
   static int count;
};
int X::count = 10;  // define static data member

int main () {
   int X = 0;   // hides class type X
   cout << X::count << endl;   // use static member of class X
}

輸出

這將生成以下輸出 -

10

更新日期:2020 年 2 月 11 日

6K+ 次瀏覽

開啟你的 職業生涯

透過完成課程來獲得認證

開始
廣告