Trang
Biên soạn: Lê Thị Mỹ Hạnh
113
II.4. Định nghĩa lại các thành viên lớp cơ sở trong một lớp dẫn xuất
Một lớp dẫn xuất có thể định nghĩa lại một hàm thành viên lớp cơ sở. Điều này được gọi là overriding. Khi hàm đó được đề cập bởi tên trong lớp dẫn xuất, phiên bản của lớp dẫn xuất được chọn một cách tự động.
Toán tử định phạm vi có thể sử dụng để truy cập phiên bản của lớp cơ sở từ lớp dẫn xuất.
II.5. Các lớp cơ sở public, protected và private
Khi dẫn xuất một lớp từ một lớp cơ sở, lớp cơ sở có thể được kế thừa là public, protected và private.
class drived_class_name : type_of_inheritance base_class_name {………………..
};
Trong đó type_of_inheritance là public, protected hoặc private. Mặc định là private. Khi dẫn xuất một lớp từ một lớp cơ sở public, các thành viên public của lớp cơ sở trở thành các thành
viên public của lớp dẫn xuất, và các thành viên protected của lớp cơ sở trở thành các thành viên protected của lớp dẫn xuất. Các thành viên private của lớp cơ sở không bao giờ được truy cập trực tiếp từ một lớp dẫn
xuất.
Khi dẫn xuất một lớp từ một lớp cơ sở protected, các thành viên public và protected của lớp cơ sở trở thành các thành viên protected của lớp dẫn xuất. Khi dẫn xuất một lớp từ một lớp cơ sở private, các thành
viên public và protected của lớp cơ sở trở thành các thành viên private của lớp dẫn xuất.
Bảng sau hình 5.6tổng kết khả năng truy cập các thành viên lớp cơ sở trong một lớp dẫn xuất dựa trên thuộc tính xác định truy cập thành viên của các thành viên trong lớp cơ sở và kiểu kế thừa.
Kiểu kế thừa
Kế thừa public Kế thừa protected
Kế thừa private
public public trong lớp dẫn xuất.
Có thể truy cập trực tiếp bởi các hàm thành viên không
tĩnh, các hàm friend và các
hàm khơng thành viên.
protected trong lớp dẫn xuất.
Có thể truy cập trực tiếp bởi các hàm thành viên không
tĩnh, các hàm friend. private trong lớp dẫn
xuất. Có thể truy cập trực tiếp
bởi các hàm thành viên không tĩnh, các hàm
friend.
protected protected trong lớp dẫn
xuất. Có thể truy cập trực tiếp bởi
các hàm thành viên không
tĩnh, các hàm friend. protected trong lớp dẫn xuất.
Có thể truy cập trực tiếp bởi các hàm thành viên không
tĩnh, các hàm friend. private trong lớp dẫn
xuất. Có thể truy cập trực tiếp
bởi các hàm thành viên không tĩnh, các hàm
friend.
private
Dấu trong lớp dẫn xuất. Có thể truy cập trực tiếp bởi
các hàm thành viên không
tĩnh, các hàm friend thông
qua các hàm thành viên
public và protected của lớp
cơ sở. Dấu trong lớp dẫn xuất.
Có thể truy cập trực tiếp bởi các hàm thành viên không
tĩnh, các hàm friend thông
qua các hàm thành viên
public và protected của lớp
cơ sở. Dấu trong lớp dẫn xuất.
Có thể truy cập trực tiếp bởi các hàm thành viên
không tĩnh, các hàm friend thông qua các
hàm thành viên public và protected của lớp cơ
sở.
Hình 5.7: Tổng kết khả năng truy cập thành viên lớp cơ sở trong lớp dẫn xuất.
II.6. Các contructor và destructor lớp dẫn xuất