Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (75.67 KB, 5 trang )
Hàm tạo, hàm huỷ đối với tính thừa kế
2.1. Lớp dẫn xuất không thừa kế các hàm tạo, hàm huỷ, toán tử gán của các lớp cơ sở
2.2. Cách xây dựng hàm tạo của lớp dẫn xuất
+ Hàm tạo cần có các đối để khởi gán cho các thuộc tính (thành phần dữ liệu) của lớp.
+ Có thể phân thuộc tính làm 3 loại ứng với 3 cách khởi gán khác nhau:
1. Các thuộc tính mới khai báo trong lớp dẫn xuất. Trong các phương thức của lớp dẫn xuất
có thể truy xuất đến các thuộc tính này. Vì vậy chúng thường được khởi gán bằng các câu lệnh
gán viết trong thân hàm tạo.
2. Các thành phần kiểu đối tượng. Trong lớp dẫn xuất không cho phép truy nhập đến các
thuộc tính của các đối tượng này. Vì vậy để khởi gán cho các đối tượng thành phần cần dùng
hàm tạo của lớp tương ứng. Điều này đã trình bầy trong mục
§
8 chương 4.
3. Các thuộc tính thừa kế từ các lớp cở sở. Trong lớp dẫn xuất không được phép truy nhập
đến các thuộc tính này. Vì vậy để khởi gán cho các thuộc tính nói trên, cần sử dụng hàm tạo
của lớp cơ sở. Cách thức cũng giống như khởi gán cho các đối tượng thành phần, chỉ khác
nhau ở chỗ: Để khởi gán cho các đối tượng thành phần ta dùng tên đối tượng thành phần, còn
để khởi gán cho các thuộc tính thừa kế từ các lớp cơ sở ta dùng tên lớp cơ sở:
Tên_đối_tượng_thành_phần(danh sách giá trị)
Tên_lớp_cơ_sở(danh sách giá trị)
Danh sách giá trị lấy từ các đối của hàm tạo của lớp dẫn xuất đang xây dựng
(xem ví dụ mục 2.4 và
§
6, ví dụ 1)
2.3. Hàm huỷ
Khi một đối tượng của lớp dẫn xuất được giải phóng (bị huỷ), thì các đối tượng thành phần
và các đối tượng thừa kế từ các lớp cơ sở cũng bị giải phóng theo. Do đó các hàm huỷ tương
ứng sẽ được gọi đến.
Như vậy khi xây dựng hàm huỷ của lớp dẫn xuất, chúng ta chỉ cần quan tâm đến các thuộc
tính (không phải là đối tượng) khai báo thêm trong lớp dẫn xuất mà thôi. Ta không cần để ý
đến các đối tượng thành phần và các thuộc tính thừa kế từ các lớp cơ sở. (xem ví dụ mục 2.4 và