fun(A& const a);很少有这种用法,但其意义是什么?
类似的指针可以明白
void fun( const A* a); // a所指向的内容不可改变
void fun( A* const a); // a指针本身不可改变
而fun(const A& a); // 所引用的a对象实例本身不可改变,不可改变其成员变量值等
fun(A& const a); // 中的const有什么具体意义呢?
想了半天,没想通!敬请指点!
类似的指针可以明白
void fun( const A* a); // a所指向的内容不可改变
void fun( A* const a); // a指针本身不可改变
而fun(const A& a); // 所引用的a对象实例本身不可改变,不可改变其成员变量值等
fun(A& const a); // 中的const有什么具体意义呢?
想了半天,没想通!敬请指点!
如果按照A* const a的理解,A& const a应该是引用本身不可改变,但是引用只能初始化,不能赋值,好象多此一举?!
就是什么是引用本身,什么是所引用的对象?
实际的情况是fun(A& const a)中的a可以赋值。
一经初始化后,就不能改变了。
“引用”类似“指针”,但有比“指针”更严格的限制,如上。
C++的发明人对“引用”的解释是:对象的别名,不分配存贮单元,直接指向
对象的地址。所以A& const a 这样的定义是多余的。
您可能把“引用”和“指针”混淆了。