Thiết kế trang Web
52 • Ông Văn Thông
THỪA KẾ C++ INHERITANCE
1. Inheritance
Trong C++, có thể thừa kế các thuộc tính và phương thức từ class này sang class khác. Chúng ta
phân nhóm "khái niệm thừa kế" thành hai loại:
- derived class (child) – class phát sinh (con cái) - class thừa hưởng từ một class khác
- base class (parent) – class cơ sở (bố mẹ) - class để lại di sản cho class khác thừa kế
Để thừa kế từ một class khác, hãy sử dụng ký hiệu dấu hai chấm (:).
Trong ví dụ dưới đây, Car là class con cái, thừa kế các thuộc tính và phương thức từ class bố mẹ
là Xehoi:
Ví dụ: #include
#include
using namespace std;
class Xehoi { // base class
public:
string hieu = "Toyota"; string kieu = "Camry"; int nam = 2020;
void bopcoi() { cout << "Beep beep " ; } };
class Car: public Xehoi { // derived class
public:
string owner;
void intro() { bopcoi(); cout << owner << " " << hieu
<< " " << kieu << " " << nam << endl ; } } ;
int main() {
Car xeA; xeA.owner = "Anh Ba"; xeA.intro();
Car xeB; xeB.owner = "Chu Tu";
xeB.kieu = "Corolla"; xeB.nam = 2018; xeB.intro();
Car xeC; xeC.owner = "Co Tam"; xeC.hieu = "Honda";
xeC.kieu = "Civic"; xeC.nam = 2015; xeC.intro();
Car xeD; xeD.owner = "Di Muoi"; xeD.hieu = "Ford";
xeD.kieu = "Escape"; xeD.nam = 2010; xeD.intro();
return 0; }
Kết quả:
Beep beep Anh Ba Toyota Camry 2020
Beep beep Chu Tu Toyota Corolla 2018
Beep beep Co Tam Honda Civic 2015
Beep beep Di Muoi Ford Escape 2010
- Tại sao và khi nào cần thừa kế?
- Nó rất hữu ích cho khả năng tái sử dụng mã: sử dụng lại các thuộc tính và phương thức của
một class hiện có khi bạn tạo một class mới.
THỪA KẾ ĐA CẤP C++ MULTILEVEL INHERITANCE
- Multilevel Inheritance
Một class có thể thừa kế từ một class vốn đã thừa kế từ một class khác. Trong ví dụ sau, class