Toán tử phạm vi :: có nhiều mục đích quan trọng trong C++:
- Truy cập biến toàn cục khi trùng tên với biến cục bộ
- Định nghĩa hàm thành viên bên ngoài lớp (class)
- Truy cập biến static của lớp
- Truy cập thành viên của namespace
Ví dụ minh họa
#include <iostream>
using namespace std;
char a = 'm'; // Biến toàn cục
static int b = 50; // Biến static toàn cục
int main() {
char a = 's'; // Biến cục bộ (che biến toàn cục)
cout << "Biến static: " << ::b << endl;
cout << "Biến cục bộ: " << a << endl;
cout << "Biến toàn cục: " << ::a << endl;
return 0;
}
Kết quả
Biến static: 50 Biến cục bộ: s Biến toàn cục: m
Các trường hợp sử dụng phổ biến
1. Gọi hàm thành viên bên ngoài class
class MyClass {
void func(); // Khai báo
};
void MyClass::func() { // Định nghĩa bên ngoài
// implementation
}
2. Truy cập biến static của class
class Counter {
static int count;
};
int Counter::count = 0; // Khởi tạo static member
3. Namespace
namespace A { int x = 1; }
namespace B { int x = 2; }
int main() {
cout << A::x; // 1
cout << B::x; // 2
}