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
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) ...
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ìm kiếm theo từ khóa liên quan:
Bài giảng Kỹ thuật lập trình Kỹ thuật lập trình Lập trình C Lập trình C++ Ngôn ngữ lập trình Lập trình hướng đối tượng Đa thừa kếTài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 281 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 276 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 273 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 235 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 229 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 219 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 217 0 0 -
101 trang 205 1 0
-
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 203 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 192 0 0