Bài giảng Lập trình hướng đối tượng - Chương 7: Polymorphism - Hồ Tuấn Thanh

Polymorphism  
Lập trình hướng đối tượng  
Hồ Tuấn Thanh – [email protected]  
11/6/18  
1
Con trỏ  
2
Thần chú  
• MIỀN GIÁ TRỊ CỦA MỘT BIẾN CON TRỎ LÀ  
ĐỊA CHỈ Ô NHỚ  
3
Toán tử  
• &: Lấy địa chỉ của một biến  
• *: Lấy giá trị tại ô nhớ mà con trỏ trỏ đến  
4
Lưu ý  
• new: cấp vùng nhớ mới cho con trỏ quản lí  
• delete: xóa vùng nhớ đã cấp cho con trỏ  
• Có new thì phải có delete  
• Cấp phát thì phải thu hồi để cho chương trình khác  
sử dụng (memory leaking)  
• Vùng nhớ mồ côi: vùng nhớ không còn con trỏ  
nào tham chiếu đến nữa  
• Rò rỉ bộ nhớ (memory leaking): không delete  
sau khi đã new và sử dụng xong  
5
Con trỏ  
6
Con trỏ  
7
Con trỏ  
8
Con trỏ  
9
Hàm ảo  
10  
Khái niệm hàm ảo  
• Là một hàm trong lớp  
• Hàm friend không thể làm hàm ảo  
• Mang tính chất ảo  
• Gọi đúng hàm mà con trỏ đang trỏ đến  
• Đây được gọi là cơ chế liên kết động  
• Thường được cài đặt bởi vtable (virtual function table)  
• Bài tập: tìm hiểu vtable, viết report 2 trang theo định dạng  
MarkDown  
• Tính chất thứ 3 của OOP: tính đa hình  
• Khai báo hàm ảo trong C++:  
• Thêm từ khóa virtual ở trước khai báo hàm  
11  
Ví dụ - không sử dụng hàm ảo  
Ví dụ - không sử dụng hàm ảo  
13  
Ví dụ - sử dụng hàm ảo  
Ví dụ - sử dụng hàm ảo  
15  
Tính đa hình  
16  
Đa hình là gì?  
• The dictionary definition of polymorphism  
refers to a principle in biology in which an  
organism or species can have many different  
forms or stages.  
• A parent class reference is used to refer to a  
child class object à A call to a member  
function will cause a different function to be  
executed depending on the type of object  
that invokes the function.  
17  
Làm sao để đa hình?  
• Khai báo kế thừa  
• Khai báo hàm ảo ở lớp cha  
• Sử dụng con trỏ  
18  
Đa hình để làm gì?  
• Chương trình viết ngắn hơn, dễ mở rộng hơn  
19  
Lợi ích 1 – Viết ngắn hơn  
Tải về để xem bản đầy đủ
pdf 47 trang myanh 24680 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 7: Polymorphism - Hồ Tuấn Thanh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_chuong_7_polymorphism_ho.pdf