下面是存根程序,反函数返回有理数的乘法逆。
#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的值。任何帮助都会非常感激!
答案 0 :(得分:0)
如果我能正确理解您的问题,您会希望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;
}