使用强制原型c ++的大小方法

时间:2015-02-23 18:42:20

标签: c++

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

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

我们的老师告诉我们如何写出返回大小的功能(单词&#39; taille&#39;表示法语大小)。

所以我考虑在函数中的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关键字编写该函数吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

它完全相同,除了本地指针必须具有相同的类型。另外,不要仅仅重新分配指针并将其泄漏。

const PElement<T> * it = l;

当然,为了保存参数的值,声明一个新变量并不多。只需直接使用参数:

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

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