Bài giảng "Kỹ thuật lập trình - Chương 10: Lập trình hướng đối tượng - Chủ đề nâng cao" cung cấp cho người học các kiến thức: Đa thừa kế, đa hình (polymorphism), hàm có tính abstrac, thừa kế ảo (Khởi động lớp cha trong thừa kế ảo). . | Bài giảng Kỹ thuật lập trình: Chương 10 - Lê Thành Sách (Nâng cao) Chương 10 Lập trình hướng đối tượng -- chủ đề nâng cao -- Lê Thành Sách Trường Đại Học Bách Khoa Lập trình C/C++ Khoa Khoa học và Kỹ thuật Máy tính 1 © 2017 Nội dung n Đa thừa kế n Đa thừa kế: thừa kế ảo n Khởi động lớp cha trong thừa kế ảo n Đa hình (polymorphism) n Đa hình: hàm có tính abstract n Tổng kết Trường Đại Học Bách Khoa Lập trình C/C++ Khoa Khoa học và Kỹ thuật Máy tính 2 © 2017 Đa thừa kế n Là gì? n Là một lớp thừa kế các thành viên từ nhiều hơn một lớp, như ví dụ sau. Lớp ConsultantManager và PermanentManager, có đến 2 lớp cha. Trường hợp tổng quát: có thể có nhiều cha. Trường Đại Học Bách Khoa Lập trình C/C++ Khoa Khoa học và Kỹ thuật Máy tính 3 © 2017 Đa thừa kế n Mô tả đa thừa kế ntn? n Liệt kê các lớp cha như ví dụ sau. n Sử dụng dấu phẩy để ngăn cách. Trường Đại Học Bách Khoa Lập trình C/C++ Khoa Khoa học và Kỹ thuật Máy tính 4 © 2017 Dùng dấu phẩy “,” để liệt kê các lớp cha class Employee{ }; class TemporaryEmployee: public Employee{ }; class PermanentEmployee: public Employee{ }; class Consultant: public TemporaryEmployee{ }; class Manager: public Employee{ }; class ConsultantManager: public Consultant, public Manager{ }; class Director: public Manager{ }; class PermanentManager: public Manager, public PermanentEmployee{ }; Trường Đại Học Bách Khoa Lập trình C/C++ Khoa Khoa học và Kỹ thuật Máy tính 5 © 2017 Đa thừa kế n Sơ đồ bộ nhớ của đối tượng n Giả sử có hệ thống lớp như hình vẽ, n Cũng giả sử code C++ được sinh ra