【发布时间】:2012-02-21 06:59:59
【问题描述】:
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
在 Fraction::pow, 内的 pow 实例期间,它采用 float、int 作为输入,应该给出 float,但它采用 Fraction 作为输入并引发错误。
【问题讨论】:
-
您能否发布该类中所有
pow函数以及所有构造函数、复制赋值运算符和转换运算符的确切签名? -
显示
pow的第二个重载定义。 -
正如@Mat 所说的发布类和函数定义,你的
Fraction类很可能有一个转换构造函数,用于隐式转换导致调用不正确的函数,以确定为什么会发生这种情况,你需要向我们展示马特所说的细节。
标签: c++ operator-overloading overloading