【发布时间】:2014-03-17 13:09:11
【问题描述】:
我知道
f(const T& obj) // (1)
g(T const& obj) // (2)
是一样的(我们不能改变f和g的body中obj的值)。
但是什么
h(T & const) // (3)
真的是什么意思?
另一个例子:
k(T const * const & const obj_p) // (4)
first const : 你不能改变实际 obj (*obj_p) 的值
second const: 你不能改变* (obj_p)的值
第三个常量:?
【问题讨论】:
-
据我所知,这不应该编译,indeed it doesn't。
-
从右到左阅读。而且编译器不会让你编译
T & const,因为引用本身不能改变,所以引用自己const是多余的。 -
在parashift.com/c++-faq-lite/const-correctness.html有一个关于常量的完整FAQ
标签: c++ pointers reference constants