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

Các lớp lồng nhau trong C ++

Một lớp lồng nhau là một lớp được khai báo trong một lớp khác. Lớp lồng nhau cũng là một biến thành viên của lớp bao quanh và có quyền truy cập giống như các thành viên khác. Tuy nhiên, các hàm thành viên của lớp bao quanh không có quyền truy cập đặc biệt vào các thành viên của lớp lồng nhau.

Một chương trình thể hiện các lớp lồng nhau trong C ++ như sau.

Ví dụ

#include<iostream>
using namespace std;
class A {
   public:
   class B {
      private:
      int num;
      public:
      void getdata(int n) {
         num = n;
      }
      void putdata() {
         cout<<"The number is "<<num;
      }
   };
};
int main() {
   cout<<"Nested classes in C++"<< endl;
   A :: B obj;
   obj.getdata(9);
   obj.putdata();
   return 0;
}

Đầu ra

Nested classes in C++
The number is 9

Trong chương trình trên, lớp B được định nghĩa bên trong lớp A nên nó là một lớp lồng nhau. Lớp B chứa một biến private num và hai hàm public getdata () và putdata (). Hàm getdata () lấy dữ liệu và hàm putdata () hiển thị dữ liệu. Điều này được đưa ra như sau.

class A {
   public:
   class B {
      private:
      int num;
      public:
      void getdata(int n) {
         num = n;
      }
      void putdata() {
         cout<<"The number is "<<num;
      }
   };
};

Trong hàm main (), một đối tượng của lớp A và lớp B được định nghĩa. Sau đó, các hàm getdata () và putdata () được gọi bằng cách sử dụng biến obj. Điều này được hiển thị bên dưới.

cout<<"Nested classes in C++"<< endl;
A :: B obj;
obj.getdata(9);
obj.putdata();