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

เข้าถึงตัวแก้ไขใน C++


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