Trường hợp 1. Không có kiểu trả về
void PhanSo::operator +=(const PhanSo &a)
{
tu = tu*a.mau + mau*a.tu;
mau = mau*a.mau;
}
Trường hợp 2. Có kiểu trả về
PhanSo& PhanSo::operator +=(const PhanSo &a)
{
tu = tu*a.mau + mau*a.tu;
mau = mau*a.mau;
return *this;
}
Theo mình nghĩ thì toán tử += đầu cần giá trị trả về do nó thay đổi trực tiếp this. Nhưng khi đọc sách thì mình thấy đa số lại viết theo TH2. Mong các bạn giải đáp giùm mình. Cảm ơn 

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?