2014-04-17 81 views
2

我知道參考不是點。引用不是一個對象。所以沒有const引用。今天模板函數參數與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); } 

我很困惑與它的參數:牛逼常量&ê。爲什麼不是const T & e?我認爲後者是正確的..也許我的問題太簡單了,在這裏發佈。與數學不同,研究級別和學習級別分別有兩個方面:MathOverFlow和math.stackexchange ..我無法找到用於stackoverflow的初級站點。所以我將它發佈到此處。請原諒我。非常感謝。

回答

5

const適用於立即對其,除非它是類型說明符序列中的第一項,在這種情況下,它適用於下一項。因此,T const & e完全等同於const T & e。你似乎在想的非法案件是T & const e。同樣,指向可變對象的不可變指針將被聲明爲T * const e

就個人而言,我首先避免將const放在第一位,因爲它是語法的特例。