Chương 6 giúp người học hiểu về "Hàm bạn-lớp bạn". Nội dung trình bày cụ thể gồm có: Giới thiệu, gàm độc lập là hàm bạn, hàm thành viên là hàm bạn, hàm bạn của nhiều lớp, lớp bạn. ! | N i dung • Gi i thi u Chương 6 • Hàm ñ c l p là hàm b n HÀM B N – L P B N • Hàm thành viên là hàm b n • Hàm b n c a nhi u l p • L pb n 1 2 Gi i thi u Gi i thi u • T i sao c n hàm b n? • Khái ni m hàm b n class Diem { int x, y; public: . int GiaTriX() { return x; } }; class DuongTron { Diem tam; int bankinh; public: . void InHoanhDoTam(){ cout:: bên trong l p c n truy c p. • Trong n i dung hàm thành viên, có th truy c p b t kỳ thành ph n nào thu c l p ñã khai báo. class DoanThang { Diem d1, d2; public: class DoanThang; float ChieuDai() { class Diem { sqrt( int x,y; pow(( - ),2) public: + pow(( - ),2)); friend float } DoanThang::ChieuDai(); 7 }; }; 6 Hàm b n c a nhi u l p • M t l p có th có nhi u hàm b n (ñ c l p hay hàm thành viên c a l p khác). • M t hàm (ñ c l p hay hàm thành viên) có th là b n c a nhi u l p. Hàm b n ñã phá v tính bao gói c a OOP => không l m d ng. class B; class A { friend void B::F(); friend int F1(A, B); }; L p có 2 hàm b n class B { void F(); friend int F1(A , B); }; void B::F(){ } int F1(A x, B y) { } Hàm F1( ) là b n c a 2 l p A và B 8 L p b n (friend class) Khi mu n khai báo t t c các hàm thành viên c a l p A là b n c a l p B class DuongTron; class Diem { int x,y; public: . friend class DuongTron; }: Khai báo A là l pb nc a l pB class DuongTron { Diem tam; int bankinh; public: . DuongTron(int x1, int y1, int bk) { = a; = y1; bankinh = bk; } void Ve() { cout << “(“ << << “,” << <<“,” << bankinh << .