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

การใช้ตัวดำเนินการความละเอียดขอบเขตใน C ++ คืออะไร?


ตัวดำเนินการ ::(ความละเอียดของขอบเขต) ใช้เพื่อเรียกชื่อที่ซ่อนอยู่เนื่องจากขอบเขตของตัวแปร เพื่อให้คุณยังคงใช้งานได้ ตัวดำเนินการความละเอียดขอบเขตสามารถใช้เป็นทั้ง unary และไบนารี

คุณสามารถใช้โอเปอเรเตอร์ขอบเขตเดียวได้ หากขอบเขตเนมสเปซหรือชื่อขอบเขตส่วนกลางถูกซ่อนโดยการประกาศชื่อที่คล้ายกันระหว่างบล็อกหรือคลาส ตัวอย่างเช่น หากคุณมีตัวแปรส่วนกลางของชื่อ my_var และตัวแปรในเครื่องของชื่อ my_var เพื่อเข้าถึง my_var ส่วนกลาง คุณจะต้องใช้ตัวดำเนินการแก้ไขขอบเขต ตัวอย่างเช่น

ตัวอย่าง

#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;
}

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

1, 2

การประกาศ my_var ที่ประกาศในฟังก์ชันหลักจะซ่อนจำนวนเต็มที่ชื่อ my_var ที่ประกาศไว้ในขอบเขตเนมสเปซส่วนกลาง คำสั่ง ::my_var =1 เข้าถึงตัวแปรชื่อ my_var ที่ประกาศไว้ในขอบเขตเนมสเปซส่วนกลาง

คุณยังสามารถใช้ตัวดำเนินการแก้ไขขอบเขตเพื่อใช้ชื่อคลาสหรือชื่อสมาชิกคลาส หากชื่อสมาชิกคลาสถูกซ่อน คุณสามารถใช้ชื่อนั้นโดยนำหน้าชื่อคลาสและตัวดำเนินการขอบเขตคลาส ตัวอย่างเช่น

ตัวอย่าง

#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
}

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

10