所以我正在编写一些代码,需要将函数的返回值提高到某个幂。我最近发现使用 '^' 运算符进行求幂是没有用的,因为在 C++ 中它实际上是一个 XOR 运算符或类似的东西。现在这是我要编写的代码:
int answer = pow(base, raisingTo(power));
现在谁能告诉我这是否正确?我会解释代码。正如你们都知道的那样,我已经声明了一个 int 变量 answer,并将其初始化为任何名为“base”的变量的值,提升为作用于任何其他名为“power”的变量的 raisingTo() 函数的返回值。当我这样做时(并且我在 Visual C++ 2010 Express Edition 中编辑和编译我的代码),红色破折号出现在“pow”一词下方,并出现一条错误消息:“多个重载函数的实例‘pow’与参数匹配list"
有人可以帮我解决这个问题吗?你们能不能也给我解释一下整个 pow() 函数是如何工作的,因为坦率地说,www.cplusplus.com 的引用资料有点令人困惑,因为我仍然只是一个初学者!
最佳答案
documentation已经非常明确地说明了这一点:
The
pow(int, int)
overload is no longer available. If you use this overload, the compiler may emit C2668 [EDIT: That's the error you get]. To avoid this problem, cast the first parameter to double, float, or long double.
此外,要计算basepower,您只需编写
pow(base, power)
还有上面的提示:
int result = (int) pow((double)base, power);
关于c++ - 来自 math.h 库的 pow() - 如何使用函数应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344983/