在编写以下函数时遇到一些问题:

static int taille(const PElement<T> * l)


这就是我们的老师告诉我们编写返回大小的函数的方式(单词“ taille”表示法语中的size)。

因此,我考虑过在函数中的PElement上声明一个指针。并执行以下操作:

static int taille( PElement<T> * l)
{
    int somme;
    PElement<T> * it = new PElement<T>(null, null);
    it = l;
    for (somme = 0; it != null; it = it->s)
    {
        somme++;
    }
    return somme;
}


该代码可以正常工作,但是您已经注意到,我在函数头中删除了参数(PElement * l)的const关键字。

有人可以向我解释如何用const关键字编写该函数吗?

提前致谢。

最佳答案

除了本地指针必须具有相同的类型外,它完全相同。另外,不要分配元素只是为了重新分配指针并泄漏它。

const PElement<T> * it = l;


当然,仅声明一个新变量来保存参数值没有多大意义。只需直接使用参数:

for (somme = 0; l; l = l->s)


请注意,null不是指定空指针的标准方法。在C ++ 11或更高版本中使用nullptr,在历史方言中使用NULL0,或者像我一样在布尔上下文中使用指针。

07-25 20:14