11/19/15
11/19/15
15:46
15:46
L p trình h ng đi t ng ướ ượ
L p trình h ng đi t ng ướ ượ
Hà Văn Sang
Khoa HTTT,
Academy Of Finance, Hanoi
Hà Văn Sang
B môn: Tin h c TC – KT
Khoa: H Th ng Thông Tin Kinh t - H c Vi n Tài Chính ế
Tel: 0982.165.568
Email: sanghv@hvtc.edu.vn
Website: http://www.hvtc.edu.vn/sanghv
L p trình h ng đi t ng ướ ượ
11/19/15
11/19/15
15:46
15:46
L p trình h ng đi t ng ướ ượ
L p trình h ng đi t ng ướ ượ
Hà Văn Sang
Khoa HTTT,
Academy Of Finance, Hanoi
CH NG VƯƠ
Object Oriented Programing– Information Systems Department 3
1. Khái ni m
1. Khái ni m
Kết gán sớm và kết gán muộn
Khi đi t ng nh n m t thông báo th c hi n m t ượ
ph ng th c, h th ng s :ươ
Ki m tra cú pháp c a thông báo
G n thông báo đó v i 1 đnh nghĩa hàm c
th
Vi c k t gán có th x y ra hai th i đi m: ế
Lúc biên d ch ch ng trình ươ K t gán s mế
Lúc ch y ch ng trình ươ K t gán mu nế
Object Oriented Programing– Information Systems Department 4
2. Ph ng th c oươ
2. Ph ng th c oươ
Định nghĩa:
Hàm ảo là hàm thành phần của lớp
Được khai báo trong lớp cơ sở và định nghĩa lại trong lớp dẫn xuất
Cú pháp
virtual <kiểu trả về> <tên hàm>([tsố])
Một số chú ý:
Định nghĩa các phương thức áo như các phương thức thông thường
Sử dụng con trỏ để truy cập tới hàm ảo
Định nghĩa trong lớp cơ sở ngay cả khi nó không được sử dụng
Không có hàm khởi tạo ảo nhưng có thể có hàm huỷ ảo
Con trỏ của lớp cơ sở có thể chứa địa chỉ của đối tượng lớp dẫn
xuất
Object Oriented Programing– Information Systems Department 5
2. Ph ng th c oươ
2. Ph ng th c oươ
Cơ chế kết gán muộn:
Khi một lớp có phương thức ảo hoặc lớp cơ sở có phương thức áo
Chương trình dịch sẽ phát sinh thêm một con trỏ ảo (virtual pointer)
Con trỏ này trỏ tới một bảng ảo (Vtable)
Bảng ảo có chứa địa chỉ của các phương thức ảo
Quá trình phát sinh một đối tượng lớp dẫn xuất:
B1: xác định các thành phần ( ko ảo) kể cả cả các thành phần của
lóp cơ sở
Bước 2: Xây dựng con trỏ ảo và bảng áo
Khi kết gán muộn, căn cứ vào con trỏ ảo để xác định
phương thức trong bảng ảo và phương thức của lớp dẫn
xuất