ที่นี่เราจะดูตัวอย่าง 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