在编写以下函数时遇到一些问题:
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
,在历史方言中使用NULL
或0
,或者像我一样在布尔上下文中使用指针。