cout 是否曾被隐式复制?
例如,cout 对象是否传递给下面代码中的第二个重载运算符,其实现中的 cout 对象是相同的对象还是 cout 的副本?
我的理解是第一个实现是正确的,因为 << 运算符适用于任何 ostream 对象,例如,它将适用于用于写入文件的 ofstream 对象。
//First implementation
ostream& operator<<(ostream& os, const Date& dt)
{
os << dt.mo << '/' << dt.da << '/' << dt.yr;
return os;
}
//Second implementation
ostream& operator<<(ostream& os, const Date& dt)
{
cout << dt.mo << '/' << dt.da << '/' << dt.yr;
return cout;
}
//using second implementation on object date
cout<<date;