Computer >> Máy Tính >  >> Lập trình >> C ++

Truy cập Công cụ sửa đổi trong C ++

Access Modifier được sử dụng để thực hiện ẩn dữ liệu trong lập trình hướng đối tượng. Có ba loại công cụ sửa đổi truy cập được sử dụng trong C ++. Đây là những công khai, riêng tư và được bảo vệ. Thông tin chi tiết về những điều này được đưa ra như sau.

Công cụ sửa đổi quyền truy cập công cộng

Các thành viên dữ liệu và các hàm thành viên trong một lớp được khai báo là công khai có sẵn cho mọi người, kể cả các lớp khác. Chúng có thể được truy cập từ bất kỳ vị trí nào trong chương trình bằng toán tử dấu chấm với đối tượng lớp.

Một chương trình thể hiện thông số truy cập công khai được cung cấp như sau.

Ví dụ

#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;
}

Đầu ra

Sum of 2 and 5 is 7

Trong chương trình trên, lớp Add có hai thành viên dữ liệu công khai là a và b. Hàm sum () hiển thị tổng của a và b. Điều này được nhìn thấy bên dưới.

class Add {
   public:
   int a, b;
   void sum() {
      cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;
   }
};

Trong hàm main (), đối tượng của lớp Add được tạo. Khi đó a và b được khởi tạo trong hàm main (). Điều này có thể được thực hiện vì chúng là kiểu dữ liệu công khai. Cuối cùng sum () được gọi là hiển thị tổng của a và b. Điều này được hiển thị bên dưới.

Add obj;
obj.a = 2;
obj.b = 5;

obj.sum();

Công cụ sửa đổi quyền truy cập riêng tư

Các thành viên dữ liệu được khai báo là private chỉ có thể truy cập được từ các hàm bên trong lớp chứ không phải bởi bất kỳ hàm nào bên ngoài lớp. Các hàm bạn bè cũng có thể truy cập các thành viên dữ liệu riêng tư của một lớp.

Một chương trình thể hiện công cụ sửa đổi quyền truy cập riêng tư được cung cấp như sau.

Ví dụ

#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;
}

Đầu ra

Sum of 9 and 5 is 14

Trong chương trình trên, lớp Add có hai thành viên dữ liệu riêng a và b. Hàm setdata () cung cấp các giá trị của a và b vì chúng là các biến riêng. Hàm sum () hiển thị tổng của a và b. Điều này được nhìn thấy bên dưới.

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;
   }
};

Trong hàm main (), đối tượng của lớp Add được tạo. Sau đó, hàm setdata () được gọi để khởi tạo a và b vì chúng là các biến riêng. Cuối cùng sum () được gọi là hiển thị tổng của a và b. Điều này được hiển thị bên dưới.

Add obj;
obj.setdata(9,5);
obj.sum();

Công cụ sửa đổi quyền truy cập được bảo vệ

Các thành viên dữ liệu của lớp được khai báo là bảo vệ tương tự như lớp được khai báo là private. Chúng không thể được truy cập trực tiếp bên ngoài lớp nhưng chúng có thể được truy cập bởi lớp dẫn xuất của lớp cơ sở.

Một chương trình thể hiện công cụ sửa đổi quyền truy cập được bảo vệ trong C ++ như sau -

Ví dụ

#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;
}

Đầu ra

a = 9
b = 1

Trong chương trình trên, lớp cha có hai biến được bảo vệ là a và b. Điều này được hiển thị bên dưới.

class Parent {
   protected:
   int a, b;
};

Lớp Con có hai hàm getdata () và putdata () nhận các giá trị của a và b và hiển thị chúng tương ứng. Các hàm này có thể thực hiện điều này vì a và b là các biến được bảo vệ và Child là một lớp dẫn xuất của Parent. Đoạn mã cho điều này được cung cấp bên dưới -

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;
   }
};

Trong hàm main (), một đối tượng obj của lớp Con được tạo. Sau đó, các hàm getdata () và putdata () được gọi. Điều này được hiển thị bên dưới.

Child obj;
obj.getdata(9,1);
obj.putdata();