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

int main () {

CSquare sqr;

CRectangle rect;

sqr.set_side(4);

rect.convert(sqr);

cout << rect.area();

return 0;

}

16

Trong ví dụ này chúng ta đã khai báo

CRectangle

là bạn của

CSquare

nên

CRectangle

có thể truy xuất vào các thành viên

protected

and

private

của

CSquare

, cụ thể hơn là

CSquare::side,

biến định nghĩa kích thước của hình

vuông.
Bạn có thể thấy một điều mới lạ trong chương trình, đó là phần khai báo mẫu
rỗng của lớp

CSquare

, điều này là cần thiết vì bên trong phần khai báo của

CRectangle

chúng ta tham chiếu đến

CSquare

(như là một tham số trong

convert()

). Phần định nghĩa đầy đủ của

CSquare

được viết ở sau.

Chú ý rằng tình bạn giữa hai lớp có thể không như nhau nếu chúng ta không chỉ
định. Trong ví dụ này

CRectangle

được coi là bạn của

CSquare

nhưng đối với

CRectangle

thì không. Bởi vậy

CRectangle

có thể truy xuất vào các thành viên

protected

private

của

CSquare

nhưng điều ngược lại là không đúng. Tuy

nhiên chẳng có gì cấm đoán chúng ta khai báo

CSquare

là bạn của

CRectangle

.

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.