Fraction Fraction::pow (Fraction frac, int power)
{
Fraction temp;
temp.num = pow(frac.num, power);
temp.den = pow(frac.den, power);
return (temp);
}
// Assume that num and den are float and cmath is included
在pow
内Fraction::pow,
的实例中,float
,int
作为输入,应该发出float
,但需要Fraction
1}}作为输入并抛出错误。
答案 0 :(得分:3)
您可以尝试调用全局范围pow
函数(我想这是您想要的函数):
temp.num = ::pow(frac.num, power);
temp.den = ::pow(frac.den, power);
在其左侧没有任何内容的作用域运算符(::
)将调用全局作用域。当然,既然你要包括<cmath>
,你也应该能够在std
命名空间中调用它们:
temp.num = std::pow(frac.num, power);
temp.den = std::pow(frac.den, power);
答案 1 :(得分:0)
根据http://www.cplusplus.com/reference/clibrary/cmath/pow/,没有重载方法接受一个浮点数和一个整数,唯一一个将float作为第一个参数的方法也将float作为第二个参数。
float pow (float base, float exponent);
你的Fraction类是否有另一个重载版本的pow?