2013-08-14 4 views
2

제목은 의미가 없지만 실제로 이것을 설명하는 방법을 모른다. 폴리 노미 얼 (polynomial)이라는 클래스가있어서 p1이라는 폴리 노름 (polynomial)을 정의했다고 말할 수 있습니다.이 폴리 노미는 2x+4입니다. 내가하고 싶은 일은 p1(5)을 직접 계산하는 것입니다. 나는 double calculate (polynomial)과 같은 것을 원하지 않는다. 나는 p1(x)으로 나의 폴리곤을 계산할 수 있기를 원한다.함수를 직접 계산하는 방법은 무엇입니까?

난 당신이 함수를 호출하는 것과 같은 객체를 "전화"수 내 질문에 operator()를 오버로드

+7

당신은'operator()'를 찾고있을 것입니다. – chris

+0

고마워, 내가 이것을 할 수 있다는 것을 알지 못했다. – user2648701

답변

5

분명하다 희망 :

struct polynomial { 
    int operator()(int x) 
    { 
     /* calculate */ 
    } 
}; 

int main() 
{ 
    polynomial p; 
    int x = p(5); 
} 
11

과부하를 함수 호출 연산자 :

struct polynomial 
{ 
    double a, b; 
    polynomial(double m, double n) : a(m), b(n) { } // represents "a * x + b" 

    double operator()(double x) const 
    { 
     return a * x + b; 
    } 
}; 

용도 :

polynomial p(2.5, 3.8); 

double val = p(1.0); 
관련 문제