You are on page 1of 2

Bài 1.

Lý thuyết
1.1 Tính kế thừa trong C++ là gì?
Nó có nghĩa là một class thừa hưởng lại tất cả các thuộc tính, phương thức
của class mà nó kế thừa.

1.2 Lợi ích của tính kế thừa?


Kế thừa giúp ta có thể tái sử dụng lại những đoạn code đã có,
tránh việc giải quyết lại các bài toán con đã có lời giải trước đó, gây lãng
phí thời gian.

1.3 Cấu trúc của class khi sử dụng tính kế thừa


- Khai báo lớp cơ sở (Base Class): Trước hết, bạn cần khai báo lớp cơ sở
(base class) bằng từ khóa class
- Khai báo lớp dẫn xuất (Derived Class): Sau đó, bạn sẽ khai báo lớp dẫn xuất
(derived class), sử dụng từ khóa class,
và sau đó thêm dấu hai chấm sau tên lớp để xác định lớp cơ sở mà bạn muốn kế
thừa.
- Thành viên và phương thức của lớp dẫn xuất: Bên trong lớp dẫn xuất,
bạn có thể khai báo các thành viên và phương thức riêng của lớp dẫn xuất,
cũng như sử dụng các thành viên và phương thức của lớp cơ sở.
- Sử dụng lớp dẫn xuất: Bạn có thể tạo các đối tượng từ lớp dẫn xuất và sử
dụng chúng như bất kỳ đối tượng
nào khác trong C++.

1.4 Các phạm vi kế thừa? Cho ví dụ minh họa


public:
Các thuộc tính public của A sẽ trở thành thuộc tính public của B
Các thuộc tính protected của A sẽ trở thành protected của B
Ví dụ:
#include <iostream>
using namespace std;

class A
{
public:
void Hello()
{
cout << "xin chao";
}
};

class B : public A
{
public:
void Nam ()
{
cout << "Nam ";
Hello();
}
};

int main()
{
B chao;
chao.Nam();
}

private:
Các thuộc tính public của A sẽ trở thành thuộc tính private của B
Các thuộc tính protected của A sẽ trở thành private của B
protected:
Các thuộc tính public của A sẽ trở thành thuộc tính protected của B
Các thuộc tính protected của A sẽ trở thành thuộc tính protected của B

1.5 Có bao nhiêu loại kế thừa? Cho ví dụ minh họa


Kế thừa đơn (single inheritance) là một class con kế thừa duy nhất từ một
class cha.
Ví dụ như class sinh viên chỉ kế thừa duy nhất từ class con người, đó là một
kế thừa đơn.

Kế thừa đa cấp (multilevel inheritance) là một class con kế thừa từ một class
cha,
class cha đó lại kết thừa từ một lớp khác. Ví dụ như class sinh viên kế thừa
từ class học sinh,
class học sinh lại kế thừa từ class con người, đó là một kế thừa đa cấp.

Kế thừa phân cấp (hierarchical inheritance) là khi có nhiều hơn một class con
kế thừa từ class cha.
Ví dụ như class sinh viên và class công nhân đều kế thừa từ class cha là con
người.

1.6 Constructor và destructor khi sử dụng tính kế thừa, cách dùng và thứ tự
thực hiện
Constructor trong tính kế thừa:
- Constructor của lớp cơ sở (base class) được gọi trước. Nó chạy trước bất kỳ
constructor nào của lớp dẫn xuất.
- Constructor của lớp dẫn xuất (derived class) được gọi sau constructor của
lớp cơ sở.
Bạn có thể truyền tham số cho constructor của lớp cơ sở trong initializer
list của constructor của lớp dẫn xuất.

- Destructor trong tính kế thừa:


- Destructor của lớp dẫn xuất (derived class) được gọi trước. Nó chạy trước
bất kỳ destructor nào của lớp cơ sở.
- Destructor của lớp cơ sở (base class) được gọi sau destructor của lớp dẫn
xuất.
1.7 Nạp chồng hàm các lớp khi sử dụng tính kế thừa? Cho ví dụ minh họa

You might also like