Access Modifiers ใช้เพื่อนำข้อมูลที่ซ่อนอยู่ไปใช้ในการเขียนโปรแกรมเชิงวัตถุ ตัวแก้ไขการเข้าถึงมีสามประเภทที่ใช้ใน C ++ สิ่งเหล่านี้เป็นสาธารณะ ส่วนตัว และได้รับการคุ้มครอง โดยมีรายละเอียดดังนี้
ตัวแก้ไขการเข้าถึงสาธารณะ
สมาชิกข้อมูลและฟังก์ชันของสมาชิกในชั้นเรียนที่ประกาศเป็นสาธารณะจะพร้อมใช้งานสำหรับทุกคน รวมถึงชั้นเรียนอื่นๆ สามารถเข้าถึงได้จากทุกที่ในโปรแกรมโดยใช้ตัวดำเนินการ dot กับอ็อบเจกต์คลาส
โปรแกรมที่แสดงตัวระบุการเข้าถึงสาธารณะมีดังต่อไปนี้
ตัวอย่าง
#include<iostream>
using namespace std;
class Add {
public:
int a, b;
void sum() {
cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;
}
};
int main() {
Add obj;
obj.a = 2;
obj.b = 5;
obj.sum();
return 0;
} ผลลัพธ์
Sum of 2 and 5 is 7
ในโปรแกรมข้างต้น คลาส Add มีสมาชิกข้อมูลสาธารณะสองคน a และ b ฟังก์ชัน sum() แสดงผลรวมของ a และ b ดูได้ด้านล่างนี้
class Add {
public:
int a, b;
void sum() {
cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;
}
}; ในฟังก์ชัน main() วัตถุของคลาส Add จะถูกสร้างขึ้น จากนั้น a และ b จะเริ่มต้นใน main() ซึ่งสามารถทำได้เนื่องจากเป็นชนิดข้อมูลสาธารณะ สุดท้าย sum() ถูกเรียกที่แสดงผลรวมของ a และ b ดังแสดงด้านล่าง
Add obj; obj.a = 2; obj.b = 5; obj.sum();
ตัวแก้ไขการเข้าถึงส่วนตัว
สมาชิกข้อมูลที่ประกาศเป็นส่วนตัวสามารถเข้าถึงได้จากฟังก์ชันภายในคลาสเท่านั้น และไม่สามารถเข้าถึงได้โดยฟังก์ชันภายนอกคลาส ฟังก์ชันเพื่อนยังสามารถเข้าถึงข้อมูลส่วนตัวของสมาชิกในชั้นเรียนได้
โปรแกรมที่แสดงการปรับเปลี่ยนการเข้าถึงแบบส่วนตัวมีดังนี้
ตัวอย่าง
#include<iostream>
using namespace std;
class Add {
private:
int a, b;
public:
void setdata(int x, int y) {
a = x;
b = y;
}
void sum() {
cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;
}
};
int main() {
Add obj;
obj.setdata(9,5);
obj.sum();
return 0;
} ผลลัพธ์
Sum of 9 and 5 is 14
ในโปรแกรมข้างต้น คลาส Add มีสมาชิกข้อมูลส่วนตัวสองตัว a และ b ฟังก์ชัน setdata() ให้ค่าของ a และ b เนื่องจากเป็นตัวแปรส่วนตัว ฟังก์ชัน sum() แสดงผลรวมของ a และ b ดูได้ด้านล่างนี้
class Add {
private:
int a, b;
public:
void setdata(int x, int y) {
a = x;
b = y;
}
void sum() {
cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;
}
}; ในฟังก์ชัน main() วัตถุของคลาส Add จะถูกสร้างขึ้น จากนั้นฟังก์ชัน setdata() จะถูกเรียกเพื่อเริ่มต้น a และ b เนื่องจากเป็นตัวแปรส่วนตัว สุดท้าย sum() ถูกเรียกที่แสดงผลรวมของ a และ b ดังแสดงด้านล่าง
Add obj; obj.setdata(9,5); obj.sum();
ตัวแก้ไขการเข้าถึงที่มีการป้องกัน
สมาชิกของข้อมูลของคลาสที่ได้รับการประกาศได้รับการปกป้องจะคล้ายกับที่ประกาศให้เป็นส่วนตัว ไม่สามารถเข้าถึงได้โดยตรงนอกคลาส แต่สามารถเข้าถึงได้โดยคลาสที่ได้รับของคลาสฐาน
โปรแกรมที่แสดงการปรับเปลี่ยนการเข้าถึงที่ได้รับการป้องกันใน C ++ มีดังนี้ -
ตัวอย่าง
#include<iostream>
using namespace std;
class Parent {
protected:
int a, b;
};
class Child: public Parent {
public:
void getdata(int x, int y) {
a=x;
b=y;
}
void putdata() {
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
}
};
int main() {
Child obj;
obj.getdata(9,1);
obj.putdata();
return 0;
} ผลลัพธ์
a = 9 b = 1
ในโปรแกรมข้างต้น คลาสพาเรนต์มีตัวแปรป้องกันสองตัว a และ b ดังแสดงด้านล่าง
class Parent {
protected:
int a, b;
}; คลาสลูกมีสองฟังก์ชัน getdata() และ putdata() ที่รับค่าของ a และ b และแสดงตามลำดับ ฟังก์ชันเหล่านี้สามารถทำได้เนื่องจาก a และ b เป็นตัวแปรที่ได้รับการป้องกัน และ Child เป็นคลาสที่ได้รับมาจาก Parent ข้อมูลโค้ดสำหรับสิ่งนี้ได้รับด้านล่าง −
class Child: public Parent {
public:
void getdata(int x, int y) {
a = x;
b = y;
}
void putdata() {
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
}
}; ในฟังก์ชัน main() วัตถุ obj ของคลาส Child จะถูกสร้างขึ้น จากนั้นฟังก์ชัน getdata() และ putdata() จะถูกเรียก ดังแสดงด้านล่าง
Child obj; obj.getdata(9,1); obj.putdata();