C++ Inheritance

Khái Niệm Về Kế Thừa Trong C++

Kế thừa (Inheritance) là một trong những tính năng cơ bản của lập trình hướng đối tượng. Nó cho phép tạo ra một lớp mới (class) dựa trên một lớp đã có, giúp tái sử dụng mã nguồn và giảm thiểu sự trùng lặp. Khi một lớp kế thừa từ một lớp khác, lớp con (child class) sẽ kế thừa tất cả các thuộc tính và phương thức của lớp cha (parent class).

Cú Pháp Của Kế Thừa Trong C++

Cú pháp để thực hiện kế thừa trong C++ như sau:

class TênLớpCha {
    // Các thuộc tính và phương thức
};

class TênLớpCon : public TênLớpCha {
    // Các thuộc tính và phương thức của lớp con
};

Các Loại Kế Thừa

  • Kế thừa công khai (public inheritance): Các phương thức và thuộc tính của lớp cha trở thành công khai trong lớp con.
  • Kế thừa bảo vệ (protected inheritance): Các phương thức và thuộc tính của lớp cha trở thành bảo vệ trong lớp con.
  • Kế thừa riêng (private inheritance): Các phương thức và thuộc tính của lớp cha trở thành riêng trong lớp con.

Ví Dụ Về Kế Thừa Trong C++

Ví Dụ 1: Kế Thừa Công Khai

#include 
using namespace std;

class HinhHoc {
public:
    void ve() {
        cout << "Ve hinh hoc!" << endl;
    }
};

class HinhTron : public HinhHoc {
public:
    void tinhDienTich(float banKinh) {
        float dienTich = 3.14 * banKinh * banKinh;
        cout << "Dien tich hinh tron: " << dienTich << endl;
    }
};

int main() {
    HinhTron hinhTron;
    hinhTron.ve(); // Gọi phương thức ve() từ lớp HinhHoc
    hinhTron.tinhDienTich(5); // Tính diện tích hình tròn
    return 0;
}

Ví Dụ 2: Kế Thừa Bảo Vệ

#include 
using namespace std;

class DongVat {
protected:
    void keu() {
        cout << "Dong vat keu!" << endl;
    }
};

class Meo : protected DongVat {
public:
    void keuMeo() {
        keu(); // Gọi phương thức keu() từ lớp DongVat
        cout << "Meo keu!" << endl;
    }
};

int main() {
    Meo meo;
    meo.keuMeo(); // Gọi phương thức keuMeo()
    return 0;
}

Kết Luận

Kế thừa trong C++ giúp xây dựng các lớp có cấu trúc phân cấp và hỗ trợ tính tái sử dụng mã nguồn. Việc nắm vững cách sử dụng kế thừa sẽ giúp bạn trở thành lập trình viên C++ giỏi hơn, có khả năng phát triển các ứng dụng phức tạp một cách hiệu quả.