ที่นี่เราจะดูตัวอย่าง C ++ และพยายามรับว่าจะสร้างเอาต์พุตประเภทใด จากนั้นเราจะเข้าใจวัตถุประสงค์และหน้าที่ของตัวดำเนินการความละเอียดขอบเขตและตัวชี้ "นี่" ใน C++
หากโค้ดบางตัวมีสมาชิกบางคนพูดว่า 'x' และเราต้องการใช้ฟังก์ชันอื่นที่มีอาร์กิวเมนต์ชื่อ 'x' เหมือนกัน ดังนั้นในฟังก์ชันนั้น หากเราใช้ 'x' มันจะซ่อนตัวแปรสมาชิก และ ตัวแปรท้องถิ่นจะถูกใช้ ให้เราตรวจสอบสิ่งนี้ในรหัสเดียว
ตัวอย่าง
#include <iostream> using namespace std; class MyClass { private: int x; public: MyClass(int y) { x = y; } void myFunction(int x) { cout << "Value of x is: " << x; } }; main() { MyClass ob1(10); ob1.myFunction(40); }
ผลลัพธ์
Value of x is: 40
ในการเข้าถึงสมาชิก x ของชั้นเรียน เราต้องใช้ตัวชี้ 'นี้' 'this' คือตัวชี้แบบพิเศษที่ชี้ไปที่วัตถุปัจจุบัน มาดูกันว่าตัวชี้ "นี่" ช่วยทำงานนี้ได้อย่างไร
ตัวอย่าง
#include <iostream> using namespace std; class MyClass { private: int x; public: MyClass(int y) { x = y; } void myFunction(int x) { cout << "Value of x is: " << this->x; } }; main() { MyClass ob1(10); ob1.myFunction(40); }
ผลลัพธ์
Value of x is: 10
ใน C ++ มีตัวดำเนินการอื่นที่เรียกว่าตัวดำเนินการแก้ไขขอบเขต โอเปอเรเตอร์นั้นใช้เพื่อเข้าถึงสมาชิกของคลาสพาเรนต์หรือสมาชิกสแตติกบางตัว หากเราใช้ตัวดำเนินการแก้ไขขอบเขตสำหรับสิ่งนี้ มันจะไม่ทำงาน ในทำนองเดียวกัน หากเราใช้ตัวชี้ 'นี้' สำหรับสมาชิกแบบคงที่ มันจะสร้างปัญหาบางอย่าง
ตัวอย่าง
#include <iostream> using namespace std; class MyClass { static int x; public: void myFunction(int x) { cout << "Value of x is: " << MyClass::x; } }; int MyClass::x = 50; main() { MyClass ob1; ob1.myFunction(40); }
ผลลัพธ์
Value of x is: 50