Bài giảng Ngôn ngữ lập trình: Bài 8 - Lê Nguyễn Tuấn Thành

Bài giảng "Ngôn ngữ lập trình - Bài 8: Đa hình và hàm ảo" cung cấp cho người học các kiến thức: Đa hình (Polymorphism), cơ bản về Hàm ảo (Virtual Function), con trỏ và Hàm ảo. . | NGÔN NGỮ LẬP TRÌNH Bài 8: Đa Hình và Hàm Ảo Giảng viên: Lê Nguyễn Tuấn Thành Email: thanhlnt@ Bộ Môn Công Nghệ Phần Mềm – Khoa CNTT Trường Đại Học Thủy Lợi NỘI DUNG 1. 2. 3. Đa hình (Polymorphism) Cơ bản về Hàm ảo (Virtual Function) Gắn kết trễ (Late binding) Cài đặt hàm ảo Khi nào sử dụng hàm ảo? Hàm ảo thuần (Pure Virtual Function) và Lớp trừu tượng (Abstract Class) Con trỏ và Hàm ảo Mở rộng tương thích kiểu Ép kiểu lên (Upcasting) Ép kiểu xuống (Downcasting) Bài giảng có sử dụng hình vẽ trong cuốn sách “Practical Debugging in C++, A. Ford and T. Teorey, Prentice Hall, 2002” 2 ĐA HÌNH (POLYMORPHISM) Một trong ba trụ cột quan trọng trong OOP Đa hình (Polymorphism) là hiện tượng các đối tượng thuộc các lớp khác nhau hiểu cùng một thông điệp theo các cách khác nhau Ví dụ: cùng là thông điệp “nhảy”, một con kangaroo và một con cóc sẽ nhảy hai kiểu khác nhau. Chúng có cùng hành vi “nhảy” nhưng nội dung của hành vi này là khác nhau 3 CƠ BẢN VỀ HÀM ẢO Hàm ảo Hàm ảo cung cấp khả năng đa hình này Hàm có thể được “sử dụng” trước khi thực sự được định nghĩa 4 VÍ DỤ VỚI CÁC LỚP MÔ TẢ HÌNH VẼ (1/5) HÀM THÀNH VIÊN DRAW() Xây dựng các lớp cho nhiều kiểu hình vẽ khác nhau Hình chữ nhật, hình tròn, hình oval Mỗi hình cụ thể là đối tượng của những lớp này Dữ liệu hình chữ nhật: chiều cao, chiều rộng Dữ liệu hình tròn: tâm, bán kính Tất cả các lớp này đều kế thừa từ một lớp cha: Figure Các lớp này đều có hàm draw() Mục đích là vẽ hình này trên màn hình Mỗi lớp có cài đặt khác nhau tương ứng với mỗi loại hình .

Không thể tạo bản xem trước, hãy bấm tải xuống
TỪ KHÓA LIÊN QUAN
TÀI LIỆU MỚI ĐĂNG
76    744    3    14-05-2024
170    79    2    14-05-2024
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.