调用时ans+= c[i] * pow(x,i);
,xCode 抱怨“函数调用的争论太多,预期 1 有 2”。我有一个本地定义的函数,如下所示:
Polynomial pow(unsigned int n) const;
和一个构造函数:
Polynomial(const double t = 0.0);
如何指定我想使用 cmath 的 pow 函数而不是本地定义的函数?
谢谢您的帮助!
调用时ans+= c[i] * pow(x,i);
,xCode 抱怨“函数调用的争论太多,预期 1 有 2”。我有一个本地定义的函数,如下所示:
Polynomial pow(unsigned int n) const;
和一个构造函数:
Polynomial(const double t = 0.0);
如何指定我想使用 cmath 的 pow 函数而不是本地定义的函数?
谢谢您的帮助!
好吧,假设您将所有自己的东西都保留在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;
}
我将假设“本地定义”是指类的成员,因为通常函数重载能够区分两个函数之间的区别;一个类成员将在全局范围内隐藏一个类似命名的函数。
::pow
如果您无法更改本地定义函数的名称,请使用。