cout は暗黙的にコピーされますか?
たとえば、以下のコードでオーバーロードされた 2 番目の演算子に渡される 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;