GIÁO TRÌNH C++ - Trang 104

CTriangle trgl;

CPolygon * ppoly1 = ▭

CPolygon * ppoly2 = &trgl;

ppoly1->set_values (4,5);

ppoly2->set_values (4,5);

cout << rect.area() << endl;

cout << sqre.area() << endl;

return 0;

}

20

10

Hàm

main

tạo hai con trỏ trỏ tới hai đối tượng của lớp

CPolygon

, đó là

*ppoly1

*ppoly2

. Chúng được gán cho địa chỉ của

rect

trgl

, đây là các đối

tượng thuộc lớp thừa kế từ

CPolygon

nên đó là những phép gán hợp lệ.

Sự hạn chế duy nhất khi sử dụng

*ppoly1

*ppoly2

thay vì

rect

trgl

cả

*ppoly1

*ppoly2

đều có kiểu là

CPolygon*

và vì vậy chúng ta chỉ có thể

tham chiếu đến các thành viên mà

CRectangle

CTriangle

được thừa kế từ

CPolygon

. Vì nguyên nhân đó chúng ta không thể gọi đến thành viên

area()

khi

dùng

*ppoly1

*ppoly2

.

Để các con trỏ đó có thể truy xuất đến

area()

như là một thành viên hợp lệ, cần

phải khai báo thành viên này trong lớp cơ sở chứ không chỉ trong các lớp thừa
kế.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.