Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Lớp lồng nhau (Nested Classes) trong C++


Nested Class (lớp lồng) là lớp khai báo bên trong lớp khác. Là biến thành viên của lớp bao ngoài, có cùng quyền truy cập. Tuy nhiên, hàm thành viên của lớp bao ngoài không có quyền truy cập đặc biệt vào thành viên lớp lồng.

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

Kết quả

Nested classes in C++
The number is 9

Lớp A chứa lớp B lồng bên trong

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

Hàm main()

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

Tạo đối tượng B thông qua phạm vi A::B. Gọi getdata() và putdata().