Nạp chồng toán tử nhập xuất

em đang tìm hiểu về nạp chồng toán tử nhập xuất trên c++,
mọi người có thể giải thích cho e về cú pháp được không ạ ?
Em tìm hiểu thì thấy kiểu trả về của phương thức phải là istream& hoặc ostream& nhưng khi em chuyển thành void thì vẫn hoạt động bình thường ạ

#include <fstream>
#include <iostream>
#include <math.h>

using namespace std;

class PhanSo
{
    public :
    int tu, mau;
    PhanSo()
    {
        tu=0;
        mau=0;
    }
    void operator>>(istream& abc)
    {
        abc >> tu;
        abc >> mau;
    }

};


int main()
{
    PhanSo b;
    b >> cin;
    cout << b.tu << " " << b.mau;
    return 0;
}
1 Like

cin >> b khác với b >> cin.
Đây cũng chả phải phải là toán tử nhập/xuất gì cả, nó chỉ là toán tử, người dùng nó như vậy cho nhập/xuất tiện hơn thôi. Đối với số thì đó là toán tử thao tác bit.

1 Like

vâng e hiểu ạ nma câu hỏi của em không phải v ạ :<

Thử nhé:

int a, b;
string c;
cin >> a >> b >> c;

Bạn thử áp dụng cách trên cho toán tử của bạn xem nào.

1 Like

toán tử của e dùng để nhập cho kiểu dữ liệu PhanSo mà anh

Thì nhập liên tiếp nhiều PhanSo giùm mình xem nào!

PhanSo a, b, c, d, ...
cin >> a >> b >> c >> d >> ...
2 Likes

ok a em thấy vấn đề r ạ anh có thể chỉ cho em cách nó hoạt động đc k ạ

à e hiểu rồi trả về tham chiếu istream& lúc này nó sẽ tương ứng với luồng nhập của cin rồi tiếp tục nhập cho các biến tiếp theo

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