Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Toán tử phạm vi (Scope Resolution Operator ::) trong C++

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
}