Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > ошибки при перегрузке операторов


Автор: sergey26 13.5.2009, 18:17
есть код
  ostream& operator << (ostream& out, TRec &obj);
при компиляции borland выдает сообщение об ошибке
'TRec::operator <<(ostream &, TRec &)' must be declared with one parameter
непойму в чем у меня ошибка. Кто может подсказать?

Автор: jonie 13.5.2009, 18:46
friend хочет ?)
operator<< бинарный, а вы его фигачите с тремя параметрами (this не зыбваем)

Автор: sergey26 14.5.2009, 12:53
Спасибо! Сработало. Но почему компилятор теперь ругается на эту строку
ostream TRec::&operator << (ostream& out, TRec& obj)
сообщает Indentifier expected

Добавлено через 3 минуты и 34 секунды
кстати то что оператор << бинарный я знаю, но полазив в инете по форумам, в примерах везде используется без friend. Чем это можно объяснить. 

Автор: math64 14.5.2009, 13:00
Код

ostream& operator << (ostream& out, TRec& obj);

Оператор можно объявить без friend вне класса:
Код

inline ostream& operator << (ostream& out, TRec& obj) {
   obj.output(out);
   return out;
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)