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

时间:2011-10-25 02:42:59

标签: c++ methods overloading pow

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

    Polynomial pow(unsigned int n) const;

和构造函数:

    Polynomial(const double t = 0.0);

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:5)

好吧,假设你把所有自己的东西都放在std命名空间之外(如果你不是,你应该,因为那是整个 raison d'être的命名空间),你可以使用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;
}

答案 1 :(得分:0)

我将假设通过“本地定义”表示类的成员,因为通常函数重载将能够区分这两个函数;类成员将在全局范围内隐藏类似命名的函数。

如果您无法更改本地定义的函数的名称,请使用::pow