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

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


Scope Resolution Operator ใช้เพื่อเข้าถึงสมาชิกแบบสแตติกหรือคลาส ในขณะที่ตัวชี้นี้ใช้เพื่อเข้าถึงสมาชิกของอ็อบเจ็กต์เมื่อมีตัวแปรในเครื่องที่มีชื่อเหมือนกัน

ตัวดำเนินการความละเอียดขอบเขต

ตัวอย่าง

#include<iostream>
using namespace std;
class AB {
   static int x;
   public:
      // Local parameter 'x' hides class member
      // 'x', but we can access it using ::.
   void print(int x) {
      cout<<"the number is:" << AB::x;
   }
};
// static members must be explicitly defined like below in c ++
int AB::x = 7;
int main() {
   AB ob;
   int m = 6 ;
   ob.print(m);
   return 0;
}

ผลลัพธ์

the number is:7

ตัวชี้นี้

ตัวอย่าง

#include<iostream>
using namespace std;
class AB {
   int x;
   public:
      AB() {
         x = 6;
      }
   // here Local parameter 'x' hides object's member
   // 'x', we can access it using this.
   void print(int x) {
      cout<<"the number is: " << this->x;
   }
};
int main() {
   AB ob;
   int m = 7 ;
   ob.print(m);
   return 0;
}

ผลลัพธ์

the number is: 6