
TÁI ĐỊNH NGHĨA TÁC TỬ
Chương 7
1

Nội dung
•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
2

Giới thiệu •Tại sao cần tái định nghĩa tác tử?
3
class PhanSo {
int tu, mau;
public:
PhanSo(int=0, int=1){…}
void InPs() {…}
int LonHon (PhanSo x) {
return (tu*x.mau>mau*x.tu);}
PhanSo Cong(PhanSo x) {…}
};
void main() {
PhanSo a(4,9), b(3,7);
if(b.LonHon(a))
cout<<“PS b lon hon a”;
PhanSo c = b.Cong(a);
a.InPs(); cout<< “ + ”; b.InPs();
cout<< “ = ”; c.InPs();
}
if ( b > a )
Ta cần có cách
viết các phép
toán theo dạng
gần gũi hơn
Phan So c = b + a
cout << a << “ + ”
<< b << “ = ” << c;

•Cơ chế
– C++ cho phép ta tái định nghĩa các tác tử (phép
toán).
– Việc tái định nghĩa tác tử thực hiện tương tự như
tái định nghĩa hàm.
–Cú pháp:
<Kiểu trả về> operator <tác tử> ( các đối số )
– Có 2 cách dùng để tái định nghĩa tác tử:
• Dùng hàm độc lập
•Dùng hàm thành viên 4
Giới thiệu (tt)

•Các tác tử có thể định nghĩa
– Số học: +, -, *, /, … Tăng giảm: ++, --, +=, *=, …
–So sánh: <, >, >=, <=, ==, !=
–Phép gán: =
– <<, >>, [], new, delete, …
5
Giới thiệu (tt)