我知道引用并不像点。引用不是对象。所以没有const引用。
const int ci = 1024;
const int &rl = ci;
我们不能写int const &rl = ...
但是今天,我学习二叉树源代码:
template <typename T> //take e as the node insert the left child of the tree.
BinNodePosi(T) BinNode<T>::insertAsLC(T const & e) { return lChild = new BinNode(e, this); }
我对它的参数感到困惑:T const & e。为什么不const T& e?我认为后者是对的..也许我的问题太简单了,无法发布在这里。与数学不同,研究级别和学习级别分别有两个方面:MathOverFlow 和 math.stackexchange ..我找不到 stackoverflow 的初级网站..所以我将其发布在这里。请原谅我。非常感谢。
最佳答案
const
适用于紧邻其左侧的事物,除非它是类型说明符序列中的第一项,在这种情况下,它适用于下一项。
因此,T const & e
与 const T & e
完全相同。您似乎正在考虑的非法情况是 T & const e
。同样,指向可变对象的不可变指针将被声明为T * const e
。
就我个人而言,我避免将 const
放在第一位,因为它是语法的特殊情况。
关于c++ - 带 const 的模板函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23123287/