У меня есть базовый класс Fraction и производный класс iFraction. Дробь представляет собой неправильные дроби, а iFraction представляет смешанные фракции.
class Fraction {...};
class iFraction : public Fraction {...};
Теперь я хочу объявить функцию друга этих двух классов, а именно convertF. Функция convertF может преобразовывать неправильные дроби (Fraction) в смешанные дроби (iFraction). Как холодно я это делаю? Собственно, я бы хотел объявить функцию вот так:
friend iFraction convertF (Fraction &Fra);
Однако он не может быть объявлен в базовой фракции calss. Зачем?