2011-10-25 12 views
0

当调用ans+= c[i] * pow(x,i);时,xCode正在抱怨“函数调用过多的争论,预期1有2个争议”。我有一个本地定义函数如下:指定cmath的pow函数而不是本地声明的函数

Polynomial pow(unsigned int n) const; 

和构造:

Polynomial(const double t = 0.0); 

我怎么可以指定我想用CMATH的战俘功能,而不是本地定义的呢?

感谢您的帮助!

回答

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; 
} 
+0

失败。 XCode说std没有一个叫pow的成员。 – joshim5

+2

然后XCode坏了,或者包含'math.h'而不是'cmath'。 – paxdiablo

0

我要去假设由“本地定义的”你的意思是一类的成员,因为一般函数重载就能够看出其中的差别两项职能之间;一个类成员会在全局范围内隐藏一个类似命名的函数。

只要使用::pow如果您不能更改本地定义的函数的名称。