บทนำ
ออเปอเรเตอร์ :: (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) เป็นเนื้อหาเดียวกัน