Danh mục

Bài giảng Kỹ thuật lập trình C/C++: Chương 10 (2) - Lê Thành Sách

Số trang: 36      Loại file: pdf      Dung lượng: 327.64 KB      Lượt xem: 2      Lượt tải: 0    
Thu Hiền

Hỗ trợ phí lưu trữ khi tải xuống: 6,000 VND Tải xuống file đầy đủ (36 trang) 0
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng "Kỹ thuật lập trình C/C++ - Chương 10: Lập trình hướng đối tượng" chủ đề nâng cao trình bày các nội dung: Đa thừa kế, đa thừa kế - thừa kế ảo, đa hình (polymorphism), đa hình - hàm có tính abstract,... Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình C/C++: Chương 10 (2) - Lê Thành Sách Chương 10 Lập trình hướng đối tượng -- chủ đề nâng cao -- Lê Thành SáchTrường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 1 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 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ếtTrường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 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. http://www.uml-diagrams.org/generalization.htmlTrường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 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 Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 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 Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 5 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 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 như slide trước. n Xét dòng khai báo biến (tạo đối tượng) như sau: PermanentManager obj; n Bộ nhớ của đối tượng “obj” được tổ chức ntn?Trường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Vùng nhớ của Vùng nhớ của Employee Employee Vùng nhớ của Vùng nhớ của Manager PermanentEmployee Vùng nhớ của PermanentManager Theo cách mô tả thừa kế như slide trước: Bên trong đối tượng kiểu “PermanentManager” có đến 2 đối tượng kiểu “Employee” hoàn toàn riêng biệt và khác nhauTrường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Đa thừa kế: Minh hoạ (I) n Xét sơ đồ đa thừa kế như hình vẽ Hiện thực cho các lớp cho ở các slide kế tiếpTrường Đại Học Bách Khoa Tp.HCM Lập trình C/C++Khoa Khoa học và Kỹ thuật Máy tính 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt© 2017 Đa thừa kế: Minh hoạ (I) Chứa tên của lớp con: ClassB hoặc ClassC class ClassA{ private: Khởi động biến string derived_class_name; public: ClassA(string name): derived_class_name(name){ cout Đa thừa kế: Minh hoạ (I) ClassB thừa kế ClassA, với tính public Gọi hàm khởi tạo lớp ClassA class ClassB: public ClassA{ public: ClassB(string name): ClassA(name){ cout Đa thừa kế: Minh hoạ (I) ...

Tài liệu được xem nhiều: