2011-10-25 3 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가 깨 졌거나'cmath' 대신에'math.h'가 포함되어 있습니다. – paxdiablo

0

내가 "로컬로 정의"에 의해 당신이 클래스의 멤버를 의미한다고 가정거야, 일반적으로 그 차이를 알 수있을 것 과부하 기능 때문에 두 기능 사이; 클래스 멤버는 전역 범위에서 비슷한 이름의 함수를 숨 깁니다.

로컬로 정의 된 기능의 이름을 변경할 수없는 경우 ::pow을 사용하면됩니다.

관련 문제