Укажите функцию pow в cmath, а не локально объявленную - PullRequest
0 голосов
/ 25 октября 2011

При вызове ans+= c[i] * pow(x,i); xCode жалуется: «Слишком много аргументов для вызова функции, ожидается, что 1 имеет 2».У меня есть локально определенная функция следующим образом:

    Polynomial pow(unsigned int n) const;

и конструктор:

    Polynomial(const double t = 0.0);

Как я могу указать, что я хотел бы использовать функцию pow в cmath, а не локально определенную функцию?

Спасибо за помощь!

Ответы [ 2 ]

5 голосов
/ 25 октября 2011

Ну, при условии, что вы храните все свои вещи вне пространства имен std (а если нет, то вы должны быть, так как это был весь смысл 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;
}
0 голосов
/ 25 октября 2011

Я собираюсь предположить, что под «локально определенным» вы подразумеваете член класса, поскольку обычная перегрузка функций могла бы определить разницу между двумя функциями; член класса будет скрывать функцию с аналогичным именем в глобальной области видимости.

Просто используйте ::pow, если вы не можете изменить имя локальной функции.

...