2012-12-04 2 views
-1

나는 함수에서 템플릿에 대한 포인터를 반환하려고에서 템플릿을 반환 : 나는 템플릿 확실히 고객을 보유 것을 알고 있기 때문에,그러나 나는 오류 제공하고, 기능

error C2440: 'return' : cannot convert from 'node<T>*' to 'Customer*' 

이상하다 목적. 오류를 반환

클래스는 이것이다 :

template <class T> 
T* l_list<T>::search(int id) 
{ 
    int i = 0; 
    node<T> *ptr = head; 
    while (id != ptr -> data.getId()) 
    { 
     ptr = ptr -> next; 
     i++; 

     if (id = ptr -> data.getId()) 
     { 
      return ptr; 
     } 
    } 
} 

나는이 일을하여 전화 : 그것은이 작업을 수행하는 것도 가능

cin >> id; 
Customer* ptr = customers.search(id); 
ptr -> createAccount(); 

인가?

T* 

하지만 당신의 유형 반환됩니다 :

답변

1

함수는 유형 선언 당신은 당신의 기능 유형과 일관성 수익 유형을 유지할 필요가

node<T>* 

합니다.

1

기능 searchT*을 반환 선언,하지만 당신은 ptrnode<T>*입니다 return ptr;를 실행한다. 그건 안돼. 아마도 return ptr->data;과 같은 것을 원하셨습니까?

+0

감사합니다. 오류가 수정되었지만 해당 고객이 '고객'으로 고객을 '고객'으로 변환 할 수 없다고 불평합니다. – Awia

+1

@user1864298, return & ptr-> data – neagoegab