tailieunhanh - Bài giảng Lập trình hướng đối tượng và C++: Chương 7
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 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 (dấu =), tái định nghĩa tác tử xuất – nhập. ! | N i dung • Gi i thi u Chương 7 • 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 Gi i thi u • T i sao c n tái ñ nh nghĩa tác t ? 2 Gi i thi u (tt) tt) • Cơ ch class PhanSo { int tu, mau; public: PhanSo(int=0, int=1){ } void InPs() { } int LonHon (PhanSo x) { return (tu*>mau*);} PhanSo Cong(PhanSo x) { } }; void main() { PhanSo a(4,9), b(3,7); if((a)) cout a ) operator ( các ñ i s ) Phan So c = b + a cout , >=, >, [], new, delete, 5 class PhanSo { int tu,mau; public: . friend PhanSo operator + (PhanSo,int); }; PhanSo operator + (PhanSo x, int n) { return PhanSo( + *n, );} void main() { PhanSo a(2,5); Ph i ñ nh nghĩa thêm tác t : PhanSo b = operator +(a,10); PhanSo operator + (int , PhanSo); PhanSo c = a + 20 ; PhanSo d = 20 + a ; // Sai 6 } Tái ñ nh nghĩa b ng hàm thành viên Tái ñ nh nghĩa phép gán (d u =) • ð i s ñ u tiên c a tác t chính là ñ i tư ng ñang xét. => Hàm s có s lư ng ñ i s ít hơn so v i hàm ñ c l p. • C++ m c nhiên s có phép gán (d u = ) b ng cách gán tương 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 “=”. • Phép gán ph i ñ nh nghĩa b ng hàm thành viên. class PhanSo { int tu,mau; public: . PhanSo operator + (int); }; PhanSo PhanSo:: ::operator + (int n) { return PhanSo(tu + mau*n, mau);} void main() { Không th ñ nh nghĩa thêm PhanSo a(2,5); tác t b ng hàm thành viên PhanSo b = +(10); PhanSo c = a + 20 ; cho trư ng h p này PhanSo d = 20 + a ; // Sai 7 } class Stack { float *ds; int soluong, vitri; public: . void operator=(const Stack& s){ soluong = ; vitri = ; delete[] ds; ds = new float[soluong]; for(int i=0; i>), xu t (> (istream& is, Diem& p); }; ostream& operator > (istream& is, Diem& p) { cout > ; cout > ; return is;} void main() { Diem a(2,10), b; cout>b; 11 cout> (istream& }; Tái ñ nh nghĩa tác .
đang nạp các trang xem trước