Russian Qt Forum
Ноябрь 23, 2024, 20:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Перегрузка оператора *  (Прочитано 12522 раз)
Даниил
Гость
« Ответ #15 : Октябрь 10, 2011, 07:08 »

Он должен возвращать TFrac&, а у тебя он void возвращает Подмигивающий
Один хрен. Ошибка та же.

Вай, заработало) Недоглядел чуток. Спасибо всем.
Записан
Даниил
Гость
« Ответ #16 : Октябрь 10, 2011, 07:48 »

Вылез другой вопрос, не совсем к теме, но все же.
Как впилить описание friend метода, вне класса?
Код
C++ (Qt)
class TFrac
{
...
friend TFrac operator * ( const TFrac & f1, const TFrac & f2 )  { return TFrac(f1.a * f2.a, f1.b * f2.b); }
...
}
 
Как указал Igors, работает вполне себе ничего.
А вот если я описание метода выношу в другой файл. (Нужно мне так!)
Код
C++ (Qt)
TFrac TFrac::operator *(const TFrac &f1, const TFrac &f2)
{
       return TFrac(f1.chislitel * f2.chislitel, f1.znamenatel * f2.znamenatel);
}
 
Вылазиет ошибка:
Код:
TFrac.cpp:154: ошибка: 'TFrac TFrac::operator*(const TFrac&, const TFrac&)' must take either zero or one argument
Записан
Nimbus
Гость
« Ответ #17 : Октябрь 10, 2011, 08:26 »

Если оператор friend, то он не является членом класса.
Описание в .h(.hpp)
Код
C++ (Qt)
class TFrac {
...
friend TFrac operator * ( const TFrac & f1, const TFrac & f2 );
...
}
 
Реализация в .cpp
Код
C++ (Qt)
TFrac operator * ( const TFrac & f1, const TFrac & f2 ); {
return TFrac(f1.chislitel * f2.chislitel, f1.znamenatel * f2.znamenatel);
}
 
Записан
Даниил
Гость
« Ответ #18 : Октябрь 10, 2011, 08:38 »

Спасибо. Больше вопросов нет.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.115 секунд. Запросов: 21.