所以我写了一些代码,需要将函数的返回值提升到一定的幂。我最近发现使用'^'运算符进行求幂是没用的,因为在C ++中它实际上是一个XOR运算符或类似的东西。现在这是我想写的代码:
int answer = pow(base, raisingTo(power));
现在有人可以告诉我这是对的吗?我会解释一下代码。我已经知道了一个int变量的答案,并将其初始化为任何名为'base'的变量的值,并将其提升为raiseTo()函数的返回值,该函数作用于任何其他名为'power'的变量。当我这样做(并且我在Visual C ++ 2010 Express Edition中编辑和编译我的代码)时,在“pow”一词下面会出现一个红色短划线,并出现一个错误:“多个函数'pow'的多个实例与参数列表“
有人可以帮我解决这个问题吗?你们也可以向我解释一下这整个pow()功能是如何运作的,坦率地说www.cplusplus.com引用有点令人困惑,因为我还是一个初学者!
答案 0 :(得分:6)
documentation非常明确地说明了这一点:
pow(int, int)
重载不再可用。如果使用此重载,编译器可能会发出C2668 [编辑:这是您得到的错误] 。要避免此问题,请将第一个参数转换为double,float或long double。
另外,要计算 base power ,您只需编写
pow(base, power)
以上提示:
int result = (int) pow((double)base, power);
答案 1 :(得分:0)
pow()函数返回double
或float
,因此第一步是将answer
更改为其中之一。第二,raisingTo()
返回的是什么。除非你正在做一些不明显的事情,否则你不需要这样做,但它应该仍然有效。此外,根据this,两个参数都应为doubles
。