Bài giảng Lập trình hướng đối tượng - Chương 7: Polymorphism - Hồ Tuấn Thanh
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 đủ
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:
bai_giang_lap_trinh_huong_doi_tuong_chuong_7_polymorphism_ho.pdf

