Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Scope Resolution Operator (::) ใน C++ มีประโยชน์อย่างไร


บทนำ

ออเปอเรเตอร์ :: (scope resolution) ใช้เพื่อเข้าถึงชื่อที่ถูกซ่อนเนื่องจาก variable scopes ใช้ได้ทั้ง unary และ binary

Unary Scope Operator

ใช้เมื่อ namespace/global scope name ถูกซ่อนโดยการประกาศชื่อเดียวกันใน block หรือ class

ตัวอย่าง: Global vs Local

#include <iostream>
using namespace std;

int my_var = 0;

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

ผลลัพธ์

1, 2

Binary Scope Operator

ใช้เข้าถึง class member ที่ถูกซ่อน

ตัวอย่าง: Static Member

#include <iostream>
using namespace std;

class X {
public:
    static int count;
};

int X::count = 10;

int main() {
    int X = 0;  // ซ่อน class X
    cout << X::count << endl;
    return 0;
}

ผลลัพธ์

10

หมายเหตุ: เนื้อหานี้ซ้ำกับบทความก่อนหน้า (ID 1004083478) เป็นเนื้อหาเดียวกัน