關於const
關鍵字在C++中的使用的另一個問題(我是C++的新手,試圖在SO上找到答案 - 答案太多,但未能找到答案)。
問題1:在下面的成員函數const成員函數如何更改對象的數據?
template <class T>
bool BinTree<T>::insert(Node<T>* & node, const T& val) const
{
node = new Node<T>(val);
}
我能夠改變其作爲參考通過一個類的數據。成員函數const
怎麼樣?是否真的這const
阻止數據只顯式更改,但允許通過引用更改它?
2.你能確認我的理解:
func(const Node<T>* const & node) {...}
在此函數中的簽名的2-ND const
裝置常量指針和1-ST const
裝置const的節點(從而該節點是常量指針爲const一個參考節點)?
下面通過@tabstop進行了確認。第一個呢?我沒有發佈整個代碼,因爲它很明顯:有一個對象的字段作爲參考傳遞給const成員並在那裏更改! –
parashift.com/c++-faq/const-member-fns.html –
「(所以節點是對const Node的const指針的引用)」是的,但參考方面不太可能有任何有用的影響,因爲傳遞對「const指針」的引用可能會採用與通過值傳遞const指針相同數量的寄存器/字節堆棧。 –