Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang Hải Bằng
Số trang: 3
Loại file: pdf
Dung lượng: 70.09 KB
Lượt xem: 10
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Kỹ thuật lập trình - Chương 7: Tái định nghĩa tác tử" cung cấp cho người học các kiến thức: Giới thiệu, tái định nghĩa hàm độc lập, tái định nghĩa bằng hàm độc lập, tái định nghĩa bằng hàm thành viên, tái định nghĩa phép gán, tái định nghĩa tác tử xuất nhập. Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang Hải Bằng Nội dung Chương 7 • Giới thiệu • Tái ñịnh nghĩa bằng hàm ñộc lập TÁI ðỊNH NGHĨA TÁC TỬ • Tái ñịnh nghĩa bằng hàm thành viên • Tái ñịnh nghĩa phép gán (dấu =) • Tái ñịnh nghĩa tác tử xuất – nhập 1 2Giới thiệu • Tại sao cần tái ñịnh nghĩa tác tử? Giới thiệu (tt tt)) • Cơ chế class PhanSo { int tu, mau; Ta cần có cách – C++ cho phép ta tái ñịnh nghĩa các tác tử (phép public: viết các phép toán). PhanSo(int=0, int=1){…} toán theo dạng void InPs() {…} int LonHon (PhanSo x) { gần gũi hơn – Việc tái ñịnh nghĩa tác tử thực hiện tương tự như return (tu*x.mau>mau*x.tu);} tái ñịnh nghĩa hàm. PhanSo Cong(PhanSo x) {…} }; – Cú pháp:void main() { if ( b > a ) PhanSo a(4,9), b(3,7); operator ( các ñối số ) if(b.LonHon(a)) Phan So c = b + a coutGiới thiệu (tt) tt) Tái ñịnh nghĩa bằng hàm ñộc lập• Các tác tử có thể ñịnh nghĩa • Thông thường nên khai báo hàm ñộc lập là hàm bạn của lớp ñể có thể truy cập các thành phần private của lớp. – Số học: +, -, *, /, … Tăng giảm: ++, --, +=, *=, … • Tác tử sau khi ñịnh nghĩa không có tính giao hoán. – So sánh: , >=, Hàm sẽ có số lượng ñối số ít hơn so với hàm ñộc lập. ứng từng thuộc tính giữa 2 ñối tượng. • Khi thành phần dữ liệu có con trỏ => phải ñịnh nghĩa “=”. class PhanSo { • Phép gán phải ñịnh nghĩa bằng hàm thành viên. int tu,mau; class Stack { void main() { public: float *ds; Stack s1(100); ... int soluong, vitri; … PhanSo operator + (int); public: Stack s2(20);}; ... …PhanSo PhanSo:: ::operator + (int n) void operator=(const Stack& s){ s2 = s1; { return PhanSo(tu + mau*n, mau);} soluong = s.soluong; …void main() { vitri = s.vitri; s1 = s2; PhanSo a(2,5); Không thể ñịnh nghĩa thêm delete[] ds; } PhanSo b = a.operator +(10); tác tử bằng hàm thành viên ds = new float[soluong]; PhanSo c = a + 20 ; cho trường hợp này for(int i=0; iTái ñịnh nghĩa phép gán (dấu =) Tái ñịnh nghĩa tác tử xuất – nhập• Phân biệt giữa phép gán và hàm xây dựng sao chép: • Dùng ñể xuất nhập trực tiếp ñối tượng qua cin, cout: – Phép gán: ñối tượng ñã tồn tại (có vùng nhớ) VD: PhanSo a(2,5); cout ), xuất ( (istream& is, Diem& p); friend ostream& operator
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang Hải Bằng Nội dung Chương 7 • Giới thiệu • Tái ñịnh nghĩa bằng hàm ñộc lập TÁI ðỊNH NGHĨA TÁC TỬ • Tái ñịnh nghĩa bằng hàm thành viên • Tái ñịnh nghĩa phép gán (dấu =) • Tái ñịnh nghĩa tác tử xuất – nhập 1 2Giới thiệu • Tại sao cần tái ñịnh nghĩa tác tử? Giới thiệu (tt tt)) • Cơ chế class PhanSo { int tu, mau; Ta cần có cách – C++ cho phép ta tái ñịnh nghĩa các tác tử (phép public: viết các phép toán). PhanSo(int=0, int=1){…} toán theo dạng void InPs() {…} int LonHon (PhanSo x) { gần gũi hơn – Việc tái ñịnh nghĩa tác tử thực hiện tương tự như return (tu*x.mau>mau*x.tu);} tái ñịnh nghĩa hàm. PhanSo Cong(PhanSo x) {…} }; – Cú pháp:void main() { if ( b > a ) PhanSo a(4,9), b(3,7); operator ( các ñối số ) if(b.LonHon(a)) Phan So c = b + a coutGiới thiệu (tt) tt) Tái ñịnh nghĩa bằng hàm ñộc lập• Các tác tử có thể ñịnh nghĩa • Thông thường nên khai báo hàm ñộc lập là hàm bạn của lớp ñể có thể truy cập các thành phần private của lớp. – Số học: +, -, *, /, … Tăng giảm: ++, --, +=, *=, … • Tác tử sau khi ñịnh nghĩa không có tính giao hoán. – So sánh: , >=, Hàm sẽ có số lượng ñối số ít hơn so với hàm ñộc lập. ứng từng thuộc tính giữa 2 ñối tượng. • Khi thành phần dữ liệu có con trỏ => phải ñịnh nghĩa “=”. class PhanSo { • Phép gán phải ñịnh nghĩa bằng hàm thành viên. int tu,mau; class Stack { void main() { public: float *ds; Stack s1(100); ... int soluong, vitri; … PhanSo operator + (int); public: Stack s2(20);}; ... …PhanSo PhanSo:: ::operator + (int n) void operator=(const Stack& s){ s2 = s1; { return PhanSo(tu + mau*n, mau);} soluong = s.soluong; …void main() { vitri = s.vitri; s1 = s2; PhanSo a(2,5); Không thể ñịnh nghĩa thêm delete[] ds; } PhanSo b = a.operator +(10); tác tử bằng hàm thành viên ds = new float[soluong]; PhanSo c = a + 20 ; cho trường hợp này for(int i=0; iTái ñịnh nghĩa phép gán (dấu =) Tái ñịnh nghĩa tác tử xuất – nhập• Phân biệt giữa phép gán và hàm xây dựng sao chép: • Dùng ñể xuất nhập trực tiếp ñối tượng qua cin, cout: – Phép gán: ñối tượng ñã tồn tại (có vùng nhớ) VD: PhanSo a(2,5); cout ), xuất ( (istream& is, Diem& p); friend ostream& operator
Tìm kiếm theo từ khóa liên quan:
Kỹ thuật lập trình Bài giảng Kỹ thuật lập trình Tái định nghĩa tác tử Tái định nghĩa bằng hàm độc lập Tái định nghĩa bằng hàm thành viên Tái định nghĩa phép gánGợi ý tài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 266 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 207 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 195 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 167 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 153 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 118 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 109 0 0 -
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 trang 106 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 92 0 0