30/09/2018, 18:35
Thắc mắc về toán tử C++
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
Bài liên quan
Viết theo trường hợp hai để đúng cho các trường hợp, đặc biệt là trường hợp này:
PhanSo a, b, c;
a += b += c;
Nếu dùng trường hợp 1 thì biểu thức trên sẽ không đúng