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();