1. Cho mình hỏi. Mình có 1 class
Circle
{
double Radius;
public:
void Set( double x0, double y0, double r);
double Area();
};
và đoạn code này
void main()
{
Circle* mycir;
mycir->Set(20, 20, 100);
double mArea = mycir->Area();
}
Tại sao ở đó dùng toán tử mũi tên mà không dùng toán tử chấm. Nó có khác nhau gì, ưu tiên gì không ạ?
mycir.Set(20,20,100);
double mArea = mycir.Area();
2.
Các hàm nhập xuất kiểu như
void inputCircleData(istream& inDevice, Circle& cir)
{
double X0, Y0, r;
inDevice >> X0 >> Y0 >> r;
cir.Set(X0,Y0,r);
}
Khi gọi hàm trong main thì sẽ gọi dòng inputCircleData(cin, mycir);
Theo em hiểu thì nó thay inDevice bằng cin và định dạng nhập xuất chuẩn thông thường từ bàn phim, tương tự cout.
Nhưng với hàm dùng operator
istream& operator >> (istream& inDevice, Circle& cir)
{
double X0, Y0, r;
inDevice >> X0 >> Y0 >> r;
cir.Set(X0,Y0,r);
return inDevice;
}
khi gọi hàm lại chỉ là cin >> mycir;
Em chưa hiểu lắm về cái hàm đó, ai có thể giải thích cho em đc không.
Em cảm ơn.
Câu trả lời được chấp nhận: