Quá tải toán tử


Mọi người giải thích giúp em phần bôi đen trong hình với

  • Toán tử cộng một số nguyên với một số hữu tỉ cho kết quả là một số hữu tỉ (đã được rút gọn)
  • Toán tử cộng một số hữu tỉ với một số nguyên cho kết quả là một số hữu tỉ (đã được rút gọn)

Em không hiểu cái phần này của quá tải toán tử lắm @.@
Em cảm ơn <3

Nếu toán hạng 1 là type khác thì operator+ phải là free function.

2 Likes

vd bình thường bạn cout << 2 + 3; được là bởi vì nó đã định nghĩa phép + rồi
Còn nếu tự dưng bạn định nghĩa class PhanSo rồi khởi tạo
PhanSo a(1, 2);
PhanSo b(2, 2);
cout << a + b;
đương nhiên sẽ lỗi vì bạn chưa định nghĩa + cho 2 phân số. Việc của bạn là overloading cái operator +
Khi đó bạn cout << a + b;
Thì nó sẽ in ra kết quả của 1/2 + 2/2 = 3/2
Tương tự với + - * / . . . .

1 Like

À quên chút :v hình như kể cả việc cout thì toán tử “<<” cũng cần được overloading còn không thì bạn sẽ phải gọi như này
PhanSo a(1, 2)
a.HienThi()
Còn code thì bạn có thể tham khảo các nguồn chatgpt, ytb rồi suy ngẫm thêm xem

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