Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
324,5 KB
Nội dung
Bài 5: Nạp chồng toán tử Nạp chồng toán tử • • • Các toán tử: +,-,*, /,… Các phép toán thực thi với kiểu liệu Nạp chồng toán tử định nghĩa lại toán tử cho kiểu liệu người dùng định nghĩa Nạp chồng toán tử Cú pháp: operator([ds tham số]) Định nghĩa ngồi lớp: ::operator([ds tham số]) { //thân hàm } Nạp chồng tốn tử • Ví dụ: Xây dựng lớp phân số Nạp chồng toán tử + để cộng hai phân số Nạp chồng toán tử class phanso { int ts,ms; public: phanso operator +(phanso p); }; phanso phanso::operator+(phanso p) { phanso kq; kq.ts=ts*p.ms+ms*p.ts; kq.ms=ms*p.ms; return kq; } Nạp chồng toán tử Cách gọi hàm toán tử: Dùng cú pháp thơng thường phép tốn Ví dụ: PS a,b,c; c=a+b; Dùng hàm thành phần đối tượng Ví dụ: PS a,b,c; c=a.operator+(b); 6/20 Nạp chồng tốn tử Chú ý: Nạp chồng tốn tử khơng làm thay đổi thứ tự ưu tiên toán tử Phần lớn tốn tử nạp chồng Một số tốn tử khơng nạp chồng như: Nạp chồng tốn tử Ví dụ Xây dựng lớp số phức Nạp chồng toán tử nhân số phức với số thực, nhân số phức với số phức Thực theo hai cách: Hàm nạp chồng hàm thành viên Hàm nạp chồng hàm khơng thành viên Nạp chồng tốn tử Có hai cách xây dựng hàm nạp chồng: Là thành viên: phương thức Không thành viên: Thường hàm bạn Chú ý: Khi hàm nạp chồng hàm khơng thành viên khơng phải phương thức lớp, nên định nghĩa lớp khơng có tên lớp kèm Nạp chồng tốn tử sp3=sp1*sp2 Chương trình hiểu sp3=sp1.operator*(sp2) Chú ý: Thứ tự đối số truyền Nạp chồng toán tử Nhập / Xuất • Để nạp chồng tốn tử