class ostream {
//...
ostream operator<<(char*); }; ostream ostream::operator<<(char* p) { while (*p) buf.sputc(*p++); return *this; }
определяет операцию << как член класса ostream, поэтому s< ");
а если применить операцию взятия адреса, то вы получите адрес
объекта, на который ссылается ссылка:
&s1 == &my_out
Первая очевидная польза от ссылок состоит в том, чтобы обеспечить
передачу адреса объекта, а не самого объекта, в функцию вывода (в
некоторых языках это называется передачей параметра по ссылке):
ostream& operator<<(ostream& s, complex z) { return s << "(" << z.real << "," << z.imag << ")"; }