Ниже - заглушка, обратная функция возвращает мультипликативный обратный рациональный номер.
#include <iostream>
using namespace std;
unsigned inverse(unsigned&, unsigned&);
int main()
{
unsigned p, q;
cout << "Enter a rational number ==> ";
cin >> p >> q;
inverse(p, q);
cout << p << ":" << q << endl;
return 0;
}
unsigned inverse(unsigned& p, unsigned& q)
// returns the multiplicative inverse
{
unsigned swap;
swap = p;
p = q;
q = swap;
return p;
}
Я пытаюсь включить обратную функцию в большую программу, и мне трудно это сделать. Заголовок функции должен быть Rational inverse() const;
Это функция-член в классе Rational. _p и _q объявляются в классе. Функция const, поэтому я не могу изменить значения _p и _q. Любая помощь могла бы быть полезна!
Вы захотите, чтобы тело Rational inverse() const
включило несколько вещей, если я правильно понимаю ваш вопрос. Сначала создайте новый Rational, который имеет привилегию модификации. Затем установите это Rational как обратное и верните его из функции.
Rational inverse() const {
Rational temp; // creates Rational you can modify
//..appropriate operations on temp to ....
//..set temp._p and temp._q to be the inverse...
return temp;
}
Не забудьте собрать рациональное из вызова функции следующим образом:
int main(){
Rational a;
Rational inverseOfa = a.inverse();
return 0;
}
Rational(unsigned p, unsigned q)
, функция- членinverse()
будет выглядеть примерно так:Rational inverse() const { return Rational(_q, _p); }