Lập trình hướng đối tượng - Chương 4
lượt xem 58
download
Tài liệu tham khảo giáo trình Lập trình hướng đối tượng- Chương 4: Đa hình
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Lập trình hướng đối tượng - Chương 4
- Chương 4 ĐA HÌNH Lập trình hướng đối tượng – Đa hình 1
- Nội dung chính Các đặc điểm quan trọng của LTHĐT Giới thiệu Các ví dụ Phương thức ảo Đa hình Destructor ảo Lớp cơ sở trừu tượng Lập trình hướng đối tượng – Đa hình 2
- Tài liệu đọc Lập trình hướng đối tượng – Đa hình 3
- Lập trình hướng đối tượng – Đa hình 4
- Lập trình hướng đối tượng – Đa hình 5
- Ví dụ 1 class Base class Derv1 : public Base { { public: public: void show( ) void show( ) { { cout
- Ví dụ 1 (tt) class Derv2 : public Base void main( ) { { public: Derv1 d1; void show( ) Derv2 d2; { Base *bp; cout
- Ví dụ 2 class Teacher { string name; int numOfStudents; public: Teacher(const string & new_name,int nos) { name=new_name; numOfStudents=nos; } void print() const; }; Lập trình hướng đối tượng – Đa hình 8
- Ví dụ 2 (tt) void Teacher::print() const { cout
- Ví dụ 2 (tt) int main() { Teacher t1("Teacher 1",50); Principal p1("Principal 1",40,"School"); Teacher *ptr; char c; cout c; if (c=='t') ptr=&t1; else ptr=&p1; ptr>print(); // which print? return 0; } Lập trình hướng đối tượng – Đa hình 10
- Ví dụ 3 Lập trình hướng đối tượng – Đa hình 11
- Ví dụ 3 (tt) Lập trình hướng đối tượng – Đa hình 12
- Ví dụ 3 (tt) Lập trình hướng đối tượng – Đa hình 13
- Ví dụ 3 (tt) Lập trình hướng đối tượng – Đa hình 14
- Ràng buộc/Liên kết Ràng buộc/Liên kết Sự xác định phương thức nào trong một phân cấp lớp được gọi với một đối tượng cụ thể Ràng buộc tĩnh/sớm Chương trình dịch có thể xác định được phương thức nào được gọi trong một phân cấp lớp với một đối tượng cụ thể Ràng buộc động/trễ Sự xác định phương thức nào trong một phân cấp lớp được sử dụng với một đối tượng cụ thể xảy ra trong thời điểm thực thi chương trình Lập trình hướng đối tượng – Đa hình 15
- Giải thích kết quả của các ví dụ Ví dụ 1 pb là con trỏ trỏ đến đối tượng thuộc lớp cơ sở Base (Base *pb) Ví dụ 2 ptr là con trỏ trỏ đến đối tượng thuộc lớp cơ sở Teacher (Teacher *ptr) Ví dụ 3 ani là con trỏ trỏ đến đối tượng thuộc lớp cơ sở Animal (Animal *ani) Lập trình hướng đối tượng – Đa hình 16
- Giải thích kết quả của các ví dụ (tt) Ví dụ 1 pb=&d1; pb=&d2; pb vẫn là trỏ đến đối tượng thuộc lớp Base (không quan tâm đến nội dung) Ví dụ 2 Tương tự ptr vẫn là trỏ đến đối tượng thuộc lớp Teacher Ví dụ 3 Tương tự ani vẫn là trỏ đến đối tượng thuộc lớp Animal Lý do Ràng buộc tĩnh/sớm Lập trình hướng đối tượng – Đa hình 17
- Giải pháp: Ràng buộc động Chương trình dịch không thể xác định được sự ràng buộc của đối tượng và phương thức Ràng buộc này chỉ được xác định một cách động tại thời điểm thực thi chương trình Để xác định một phương thức bị ràng buộc động, ở khai báo phương thức của lớp cơ sở phải dùng từ khóa virtual Khi một phương thức được định nghĩa ảo, tất cả các phương thức phải nạp chồng từ điểm này xuống phân cấp lớp cho dù nó có được khai báo là tường minh hay không Lập trình hướng đối tượng – Đa hình 18
- Các kết quả mới Ví dụ 1 virtual void show( ); Kết quả: Derv 1 Derv 2 Ví dụ 2 virtual void print() const; Kết quả: … Name of School: School Ví dụ 3 virtual void Speak() Kết quả: My name is Tony, go go ! My name is fluffy, meoo ! Lập trình hướng đối tượng – Đa hình 19
- Phương thức ảo Giả sử lớp cơ sở Base có phương thức ảo method và các lớp dẫn xuất của Base nạp chồng phương thức này. Khi ta gọi method thông qua một con trỏ hay tham chiếu p có kiểu Base thì phương thức method được gọi sẽ là phương thức của đối tượng mà p đang trỏ đến Chú ý: Gọi phương thức method trên một đối tượng kiểu Base sẽ không có hiệu quả như đã nói ở trên Lập trình hướng đối tượng – Đa hình 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Lập trình hướng đối tượng với C++ part 4
35 p | 327 | 166
-
BÀI GIẢNG TÓM TẮT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
111 p | 382 | 157
-
Lập trình hướng đối tượng_ Chapter 4
26 p | 244 | 132
-
Tự học lập trình hướng đối tượng và lập trình cơ sở dữ liệu C part 4
40 p | 249 | 124
-
Bài giảng Lập trình hướng đối tượng - XML DOM
121 p | 59 | 8
-
Bài giảng Lập trình hướng đối tượng - XML và Database
88 p | 70 | 8
-
Bài giảng Bài 4: Lập trình hướng đối tượng và mô hình BOM - ĐH FPT
0 p | 61 | 6
-
Bài giảng Lập trình hướng đối tượng - Bài 4: Các kỹ thuật xây dựng lớp
40 p | 68 | 5
-
Bài giảng Lập trình hướng đối tượng: Bài 4 - Khởi tạo và sử dụng đối tượng
49 p | 22 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 4 - ThS. Trịnh Thành Trung
40 p | 33 | 3
-
Bài giảng Phương pháp lập trình hướng đối tượng: Bài tập 4 - Trần Phước Tuấn
4 p | 72 | 3
-
Bài giảng Phương pháp lập trình hướng đối tượng: Template, thư viện C++ - Trần Phước Tuấn
24 p | 51 | 3
-
Bài giảng Lập trình hướng đối tượng - Bài 4: Các kỹ thuật xây dựng lớp và sử dụng đối tượng
0 p | 76 | 3
-
Bài giảng Phương pháp lập trình hướng đối tượng: Giới thiệu và ôn tập
20 p | 114 | 3
-
Bài giảng Lập trình hướng đối tượng - Bài 4: Neted class
0 p | 55 | 3
-
Bài giảng Lập trình hướng đối tượng: Bài 4 - Nguyễn Khanh Văn
0 p | 50 | 2
-
Bài giảng Phương pháp lập trình hướng đối tượng: Các kiểu lập trình
14 p | 22 | 2
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 4 - TS. Lý Anh Tuấn
29 p | 18 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn