math.h库中的pow() - 如何使用函数应用

时间:2012-02-18 23:01:25

标签: c++ pow math.h

所以我写了一些代码,需要将函数的返回值提升到一定的幂。我最近发现使用'^'运算符进行求幂是没用的,因为在C ++中它实际上是一个XOR运算符或类似的东西。现在这是我想写的代码:

int answer = pow(base, raisingTo(power));


现在有人可以告诉我这是对的吗?我会解释一下代码。我已经知道了一个int变量的答案,并将其初始化为任何名为'base'的变量的值,并将其提升为raiseTo()函数的返回值,该函数作用于任何其他名为'power'的变量。当我这样做(并且我在Visual C ++ 2010 Express Edition中编辑和编译我的代码)时,在“pow”一词下面会出现一个红色短划线,并出现一个错误:“多个函数'pow'的多个实例与参数列表“

有人可以帮我解决这个问题吗?你们也可以向我解释一下这整个pow()功能是如何运作的,坦率地说www.cplusplus.com引用有点令人困惑,因为我还是一个初学者!

2 个答案:

答案 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()函数返回doublefloat,因此第一步是将answer更改为其中之一。第二,raisingTo()返回的是什么。除非你正在做一些不明显的事情,否则你不需要这样做,但它应该仍然有效。此外,根据this,两个参数都应为doubles