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

Các thành viên riêng tư và được bảo vệ trong C ++


Một lớp trong C ++ có các phần công khai, riêng tư và được bảo vệ chứa các thành viên lớp tương ứng.

Các thành viên dữ liệu cá nhân không thể được truy cập từ bên ngoài lớp. Chúng chỉ có thể được truy cập bằng các chức năng lớp hoặc bạn bè. Tất cả các thành viên trong lớp là riêng tư theo mặc định.

Các thành viên được bảo vệ trong một lớp tương tự như các thành viên riêng tư nhưng chúng có thể được truy cập bởi các lớp dẫn xuất hoặc lớp con trong khi các thành viên riêng không thể truy cập.

Một chương trình chứng minh các thành viên riêng tư và được bảo vệ trong một lớp được đưa ra như sau -

Ví dụ

#include <iostream>
using namespace std;
class Base {
   public :
   int a = 8;
   protected :
   int b = 10;
   private :
   int c = 20;
};
class Derived : public Base {
   public :
   void func() {
      cout << "The value of a : " << a;
      cout << "\nThe value of b : " << b;
   }
};
int main() {
   Derived obj;
   obj.func();
   return 0;
}

Đầu ra

Kết quả của chương trình trên như sau.

The value of a : 8
The value of b : 10

Bây giờ, chúng ta hãy hiểu chương trình trên.

Trong lớp Base, các thành viên dữ liệu là a, b và c lần lượt là public, protected và private. Đoạn mã cho điều này được đưa ra như sau.

class Base {
   public :
   int a = 8;
   protected :
   int b = 10;
   private :
   int c = 20;
};

Lớp Derived kế thừa lớp Base. Hàm func () in ra các giá trị của a và b. Nó không thể in giá trị của c vì nó là private đối với class Base và không thể được truy cập trong class Derived. Đoạn mã cho điều này được đưa ra như sau.

class Derived : public Base {
   public :
   void func() {
      cout << "The value of a : " << a;
      cout << "\nThe value of b : " << b;
   }
};

Trong hàm main (), đối tượng obj của lớp Derived được tạo. Khi đó hàm func () được gọi. Đoạn mã cho điều này được đưa ra như sau.

int main() {
   Derived obj;
   obj.func();
   return 0;
}