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