intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang Hải Bằng

Chia sẻ: Sơn Tùng | Ngày: | Loại File: PDF | Số trang:3

58
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang Hải Bằng

  1. 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 2 Giớ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 cout
  2. Giớ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; i
  3. Tá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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2