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.
Tối ưu hóa code tạo 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 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Chương 4
TỔNG QUÁT VỀ MỨC ĐỘ 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.