Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang Hải Bằng
lượt xem 3
download
Bài giảng "Kỹ thuật lập trình - Chương 6: Hàm bạn - Lớp bạn" cung cấp cho người học các kiến thức: Giới thiệu, hà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. Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang Hải Bằng
- Nội dung Chương 6 • Giới thiệu • 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ớp bạ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 { Muốn truy cập các thành phần – Hàm bạn của 1 lớp là hàm có khả năng truy cập ñến int x, y; private hay protected của 1 lớp các thành phần dùng riêng (dữ liệu và hàm) của lớp public: từ bên ngoài của lớp ñó. …. int GiaTriX() – Cú pháp: khai báo prototype ca hàm trong lớp phải thiết kế các hàm { return x; } lấy giá trị dữ liệu thành viên muốn cho phép truy cập ñó với từ khóa friend. }; class A { class B { class DuongTron { Nếu số lượng các thành phần int a1; … dữ liệu trong lớp quá nhiều public : int HamThanhVien(); Diem tam; … }; int bankinh; Friend void HamDocLap(A); public: thiết kế hàm bạn (friend) Friend int B::HamThanhVien(); int B::HamThanhVien() …. }; { void InHoanhDoTam(){ Khai báo trong lớp Diem hàm sau: void HamDocLap(A x) A y; … cout
- Hàm ñộc lập là hàm bạn Hàm ñộc lập là hàm bạn • Hàm ñộc lập (không thuộc lớp nào) có thể ñược khai báo là bạn của 1 lớp. • Chỉ cần khai báo tên hàm ñộc lập bên trong lớp. class PhanSo { int tu, mau; • Trong nội dung hàm ñộc lập, có thể truy cập bất kỳ thành public: phần nào thuộc lớp ñó. … friend int SoSanhBang (PhanSo,PhanSo); class Diem { }; int x,y; public: int SoSanhBang(PhanSo a, PhanSo b){ … if(a.tu*b.mau== b.tu*a.mau) friend int Trung(Diem, Diem); return 1; }; else int Trung(Diem a, Diem b){ return 0; if (a.x==b.x && a.y==b.y) } return 1; else return 0; } 5 6 Hàm thành viên là hàm bạn Hàm bạn của nhiều lớp • Hàm thành viên của 1 lớp có thể ñược khai báo là bạn • Một lớp có thể có nhiều hàm bạn (ñộc lập hay hàm thành của 1 lớp khác. viên của lớp khác). • Chỉ cần khai báo :: • Một hàm (ñộc lập hay hàm thành viên) có thể là bạn của bên trong lớp cần truy cập. nhiều lớp. • Trong nội dung hàm thành viên, có thể truy cập bất kỳ Hàm bạn ñã phá vỡ tính bao gói của OOP => không lạm dụng. thành phần nào thuộc lớp ñã khai báo. class DoanThang { class B; class B { Diem d1, d2; class A { … public: … void F(); class DoanThang; … friend void B::F(); friend int F1(A , B); class Diem { float ChieuDai() { friend int F1(A, B); … int x,y; sqrt( … }; public: pow((d1.x - d2.x),2) }; void B::F(){ … } … + Lớp có 2 hàm bạn int F1(A x, B y) { … } friend float pow((d1.y - d2.y),2)); Hàm F1(…) là bạn DoanThang::ChieuDai(); } của 2 lớp A và B }; }; 7 8
- Lớp bạn (friend class) Khi muốn khai báo tất cả Khai báo A là các hàm thành viên của lớp bạn của lớp A là bạn của lớp B lớp B class DuongTron; class DuongTron { class Diem { Diem tam; int x,y; int bankinh; public: public: ... ... DuongTron(int x1, int y1, int bk) friend class {tam.x = a; tam.y = y1; bankinh = bk; DuongTron; } }: void Ve() { cout
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình - Phạm Thế Bảo
0 p | 220 | 32
-
Bài giảng Kỹ thuật lập trình: Chương I - Lưu Hồng Việt
48 p | 194 | 23
-
Bài giảng Kỹ thuật lập trình: Chương IV - Lưu Hồng Việt
32 p | 151 | 17
-
Bài giảng Kỹ thuật lập trình: Chương III - Lưu Hồng Việt
51 p | 147 | 15
-
Bài giảng Kỹ thuật lập trình: Chương V - Lưu Hồng Việt
19 p | 127 | 15
-
Bài giảng Kỹ thuật lập trình: Phần 1 - ĐH CNTT&TT
37 p | 114 | 10
-
Bài giảng Kỹ thuật lập trình - Bài 1: Tổng quan về kỹ thuật lập trình
65 p | 165 | 8
-
Bài giảng Kỹ thuật lập trình: Bài 1 - Phạm Đình Sắc
9 p | 129 | 7
-
Bài giảng Kỹ thuật lập trình nâng cao: Chương 4 - ThS. Dương Thành Phết
26 p | 92 | 7
-
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 p | 15 | 4
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p | 7 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang
37 p | 11 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang
28 p | 6 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 8 - Trần Quang
34 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 9 - Trần Quang
33 p | 4 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn