Только если это функция-член класса, которая в противном случае была бы первым аргументом. Таким образом, было бы:
class ostream {
...
ostream &operator << (const myClass &o);
...
};
С ostream
было написано задолго до вашего класса, вы видите проблему получения вашего класса там. Таким образом, мы должны реализовать оператор в качестве автономной функции:
(return type) operator << ((left hand side), (right hand side));
Когда операторы реализуются в виде членов-функций классов, левая рука this
, и аргумент становится правая рука. (Для двоичных операторов - унарные операторы работают аналогично.)
+1 для хорошего вывода о том, что было недосказанным в вопросе – 2010-12-03 20:38:43