xuất chỉ tạo ra một bản sao của các thành phần được thừa kế từ lớp cơ sở... Lớp cơ sở ảo[r]
(1)(2)Nội dung chính
(3)1 Thừa kế gì?
C++ cho phép tạo lớp từ lớp
đã tồn
Lớp B kế thừa lớp A, có nghĩa lớp B có
các thuộc tính phương thức A, ngoại trừ thành phần private
(4)(5)(6)(7)2 Cài đặt thừa kế
Cú pháp khai báo lớp dẫn xuất từ lớp
cơ sở sau:
class lớp_dẫn_xuất : mức truy nhập lớp_cơ_ sở
Mức truy nhập Thành phần thừa kế từ lớp sở
public giữ nguyên mức truy nhập
protected chuyển sang mức truy nhập protected
(8)Ví dụ: thừa kế
(9)(10)Gán đối tượng lớp sở bằng lớp dẫn xuất
Sau phép gán, thành phần chung
(11)(12)(13)3 Đa thừa kế
X
A2 A1
(14)Giải xung đột
Gọi tường minh
Ví dụ lớp X có phương thức x thừa kế Lời gọi x từ đối tượng lớp B
B b;
b.A1 :: x; b.A2 :: x;
(15)Lớp sở ảo
Lớp sở ảo đảm bảo lớp dẫn
(16)(17)Lớp sở ảo
Hàm tạo lớp sở gọi
hàm tạo lớp dẫn xuất trực tiếp từ
Hàm tạo lớp sở ảo gọi tất
cả lớp dẫn xuất
Quy tắc sau:
Hàm tạo lớp sở ảo gọi
Tiếp theo hàm tạo lớp dẫn xuất trực
(18)(19)