2013-10-22 6 views
-3

목록의 길이를 제공하는 재귀 함수를 작성하고 싶습니다. 재귀 적으로 만들기 위해이 포인터를 List 클래스 헤더에있는 함수 선언의 기본 매개 변수로 사용합니다.[C++] 기본 매개 변수로 사용

//Header file 
#include "Nodo.h" 

template < class Tipo > 

class Lista 
{ 

    private: 
     Nodo<Tipo>* Prox; 

    public: 
     Lista(); 

     bool ListaVuota(); 

     int DimensioneLista(Lista<Tipo>* = this); 

     void InserisciInCoda(Tipo); 

}; 

//CPP file 

template< class Tipo > 

int Lista<Tipo>::DimensioneLista(Lista<Tipo>* lista) 

{ 

    if(lista->ListaVuota()) 
     return 0; 
    else 
     return 1+DimensioneLista(lista); 

} 
+0

어떤 오류 어떤 라인을 사용하는 것입니다? 런타임 검사를위한 필요가 없습니다 있도록 간단한 – Philipp

답변

5

예, this은 함수 내에서 사용할 수 있습니다 :하지만 컴파일러는이 코드는 ... 나에게 오류를 제공합니다.

간단한 변화는, 대신에 기본 값으로 NULL를 사용하는 함수에 NULL을 확인하고 this 대신

+5

는 여전히 과부하가 : 당신은이 별도의 답변을 확인 할 수 있습니다 @MikeSeymour' –

+0

'INT DimensioneLista는() {(이) DimensioneLista를 반환}. – Angew

관련 문제