Tối ưu hóa code tạo ra (tt)

Một phần của tài liệu giáo trình lập trình oop - đh bách khoa (Trang 44 - 48)

‰ trong C++, tất cả ₫ối tượng ₫ều tạm thời và gắn chặt vào ứng dụng → bảng ₫ịa chỉ các method của các ₫ối tượng luôn nằm sẵn trong không gian của ứng dụng.

‰ Mỗi lần tạo ₫ối tượng mới, biến pvftbl trong ₫ối tượng ₫ược gán ngay ₫ịa chỉ bảng ₫ịa chỉ các method → không cần thực hiện bước 1 khi xử lý lệnh gởi thông ₫iệp ₫ến ₫ối tượng.

‰ C++ chỉ dùng mối quan hệ con/cha trong kiểm tra kiểu → công việc 2 (tìm chỉ số tác vụ) ₫ược làm tại thời ₫iểm dịch thay vì tại thời ₫iểm gởi thông ₫iệp trong lúc chạy → cột tên gợi nhớ

method không cần phải lưu trữ trong bảng ₫ịa chỉ các method. ‰ chỉ có các virtual function mới ₫ược giải quyết theo cơ chế ₫a xạ

→ bảng ₫ịa chỉ chỉ chứa các hàm virtual của class, còn các function khác ₫ược dịch ra lời gọi hàm trực tiếp.

Ti ưu hóa code to ra (tt)

‰ cái giá phải trả của việc tối ưu hóa trong C++ :

ƒ người lập trình phải tự quyết ₫ịnh tác vụ nào cần xử lý theo cơ chế ₫a xạ, tác vụ nào không ? Nếu sự quyết ₫ịnh này sai thì sẽ gây lỗi khi chạy, mà là người thì khó lòng quyết ₫ịnh chính xác.

ƒ tính ₫a xạ chỉ ₫úng giữa các ₫ối tượng có mối quan hệ

con/cha, ở ₫ó thứ tự các ₫ịa chỉ method của mọi class con trong bảng ₫ịa chỉ luôn giống thứ tự các method tương ứng của class cha, tuy nhiên giữa 2 class bất kỳ thì không thể ₫ảm bảo → kiểm tra kiểu trong C++ không thể nâng cấp lên bằng cách dùng mối quan hệ "conformity".

MÔN LP TRÌNH HƯỚNG ĐỐI TƯỢNG

Chương 4

TNG QUÁT V MC ĐỘ H TR

4.1 Ngôn ng Visual C++

1. Chỉ hỗ trợ class, không hỗ trợ abstract type.

2. Cho phép ₫a thừa kế & Override method khi thừa kế. 3. Dùng 'abstract class' ₫ể ₫ịnh nghĩa interface.

4. Tầm vực truy xuất các thành phần.

5. Đa xạ có chọn lọc nhờ 'virtual function' 6. Chỉ hỗ trợ các ₫ối tượng tạm.

Một phần của tài liệu giáo trình lập trình oop - đh bách khoa (Trang 44 - 48)

Tải bản đầy đủ (PDF)

(107 trang)