為什麼 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
廣告
資料結構
網路通訊
關係型資料庫
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言
C++
C#
MongoDB
MySQL
JavaScript
PHP