指定cmath的pow函数,而不是本地声明的函数

jos*_*im5 0 c++ methods overloading pow

在调用时ans+= c[i] * pow(x,i);,xCode抱怨"函数调用的争论太多,预期1有2".我有一个本地定义的函数如下:

    Polynomial pow(unsigned int n) const;
Run Code Online (Sandbox Code Playgroud)

和一个构造函数:

    Polynomial(const double t = 0.0);
Run Code Online (Sandbox Code Playgroud)

如何指定我想使用cmath的pow函数而不是本地定义的函数?

谢谢您的帮助!

pax*_*blo 5

好吧,假设你将所有自己的东西都保留在std命名空间之外(如果你不是,那么你应该这样,因为那是命名空间的完整存在理由),你可以使用std::pow().

有关示例,请参阅以下代码:

#include <iostream>
#include <cmath>
int pow(int x, int y) { return -1; }
int main() {
    std::cout << std::pow(3,2) << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • 然后XCode被破坏或你包括`math.h`而不是`cmath`. (2认同)