Toán tử ::(độ phân giải phạm vi) được sử dụng để lấy tên ẩn do phạm vi thay đổi để bạn vẫn có thể sử dụng chúng. Toán tử phân giải phạm vi có thể được sử dụng dưới dạng cả đơn phân và nhị phân. Bạn có thể sử dụng toán tử phạm vi đơn vị nếu phạm vi không gian tên hoặc tên phạm vi toàn cục bị ẩn bởi một khai báo cụ thể của một tên tương đương trong một khối hoặc lớp. Ví dụ:nếu bạn có một biến toàn cục tên my_var và một biến cục bộ tên my_var, để truy cập my_var toàn cầu, bạn sẽ cần sử dụng toán tử phân giải phạm vi.
ví dụ
#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; }
Đầu ra
Điều này sẽ cung cấp đầu ra -
1, 2
Khai báo my_var được khai báo trong hàm chính ẩn số nguyên có tên my_var được khai báo trong phạm vi không gian tên toàn cục. Câu lệnh ::my_var =1 truy cập vào biến có tên my_var được khai báo trong phạm vi không gian tên chung.
Bạn cũng có thể sử dụng toán tử phân giải phạm vi để sử dụng tên lớp hoặc tên thành viên lớp. Nếu tên thành viên lớp bị ẩn, bạn có thể sử dụng tên đó bằng cách thêm tiền tố vào tên lớp và toán tử phạm vi lớp. Ví dụ,
Ví dụ
#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 }
Đầu ra
Điều này sẽ cung cấp đầu ra -
10