[C++]这是默认参数

[C++]This as default parameter

本文关键字:默认 参数 C++      更新时间:2023-10-16

我想写一个递归函数,给我一个列表的长度。为了使它递归,我使用此指针作为 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);
}

是的,this只能在函数中使用。

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