【发布时间】:2011-09-12 03:45:28
【问题描述】:
我正在测试一些与重载 IO 运算符相关的 C++ 代码。代码如下:
class Student {
private:
int no;
public:
Student(int n)
{
this->no = n;
}
int getNo() const {
return this->no;
}
friend istream& operator>>(istream& is, Student& s);
friend ostream& operator<<(ostream& os, const Student& s);
};
ostream& operator<<(ostream& os, const Student& s){
cout << s.getNo(); // use cout instead of os
return os;
}
istream& operator>>(istream& is, Student& s)
{
cin >> s.no; // use cin instead of is
return is;
}
但是,在<< 和>> 中,我可以使用:
ostream& operator<<(ostream& os, const Student& s){
os << s.getNo(); // use os instead of cout
return os;
}
istream& operator>>(istream& is, Student& s)
{
is >> s.no; // use is instead of cin
return is;
}
在<< 中,我使用os 对象而不是cout 和>> 运算符的相似性。所以,我很想知道这有什么不同吗?
【问题讨论】:
标签: c++ io operators overloading