Xin chào mọi người,
Mình đang tìm hiểu về Operator và được biết khái niệm về hàm trả về tham chiếu, cụ thể khi mình viết operator << hay >> để xuất hay nhập 1 đối tượng thuộc lớp PhanSo // do mình tự định nghĩa :
Đây là khai báo ở file PhanSo.h:
friend ostream& operator << (ostream &, PhanSo);
friend istream& operator >> (istream &S, PhanSo &);
và phần cài đặt ở file PhanSo.cpp:
ostream & operator<<(ostream &os, PhanSo x)
{
os << x.Tu << "/" << x.Mau;
return os;
}
istream & operator>>(istream &is, PhanSo &x)
{
cout << "\nNhap vao tu so = ";
is >> x.Tu;
do
{
cout << "\nNhap vao mau so = ";
is >> x.Mau;
if (x.Mau == 0)
{
cout << "\nMau so phai khac 0, nhap lai mau so !";
};
} while (x.Mau == 0);
return is;
}
Câu hỏi của mình là :
- Ở phần khai báo là 2 hàm trả về tham chiếu, vậy hàm trả về tham chiếu có tác dụng gì trong trường hợp này ?
- Ở phần cài đặt, ostream & operator<<(ostream &os, PhanSo x), os (hay is bên istream) là biến loại gì ? Có tác dụng gì ?
- Hàm trả về tham chiếu nên dùng trong trường hợp nào ?
Xin cảm ơn mọi người !


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