Hỏi về nạp chồng toán tử Input/Output C++

Mình mới tìm hiểu về việc Nạp chồng toán tử Nhập/Xuất cho Class PHANSO trong C++

istream& operator >>(istream &is, PHANSO &x){
	cout << "Nhap tu so: ";
	is >> x.tuso;
	cout << "Nhap mau so: ";
	is >> x.mauso;
	return is;
}

Ở đây, mình có một số thắc mắc muốn hỏi mọi người:

  • Giải thích dòng lệnh đầu
  • Giải thích dòng lệnh thứ ba, ở đây mình có thể dùng cin>>x.tuso; được hay không?
  • Tại sao nạp chồng toán tử >> phải trả về đối tượng thuộc lớp istream??
    Mình xin chân thành cảm ơn!
  • Cái này không thể là phương thức của class mình (do stream đứng trước), mà cũng không phải của class stream (đâu phải của mình đâu mà friend) nên nó phải nằm ngoài.
  • Khôngifstream cũng là istream.
  • Vì bạn phải chain cin >> ps1 >> ps2 tức là (cin >> ps1) >> ps2.
5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?