编写以下函数时遇到了一些问题:
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关键字编写该函数吗?
提前致谢。
答案 0 :(得分:3)
它完全相同,除了本地指针必须具有相同的类型。另外,不要仅仅重新分配指针并将其泄漏。
const PElement<T> * it = l;
当然,为了保存参数的值,声明一个新变量并不多。只需直接使用参数:
for (somme = 0; l; l = l->s)
请注意,null
不是指定空指针的标准方法。在历史方言中使用C ++ 11或更高版本中的nullptr
,NULL
或0
,或者像我一样在布尔上下文中使用指针。