[C ++]这是默认参数

时间:2013-10-22 09:54:20

标签: c++ list parameters this

我想编写一个递归函数,它给出了列表的长度。 为了使其递归,我在List类头中的函数声明中使用此指针作为默认参数。但编译器给我一个错误...... 这是代码:

//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);

}

1 个答案:

答案 0 :(得分:5)

是的,this只能在功能中使用。

最简单的更改是使用NULL作为默认值,然后在您的函数中检查NULL,并使用this代替