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有什么具体意义呢?
想了半天,没想通!敬请指点!

解决方案 »

  1.   

    呵呵,看来我寡闻了一点。
    如果按照A* const a的理解,A& const a应该是引用本身不可改变,但是引用只能初始化,不能赋值,好象多此一举?!
      

  2.   

    大家可以探讨:A& const a中
    就是什么是引用本身,什么是所引用的对象?
    实际的情况是fun(A& const a)中的a可以赋值。
      

  3.   

    C++中的“引用”是不可赋值的,只能初始化!
    一经初始化后,就不能改变了。
    “引用”类似“指针”,但有比“指针”更严格的限制,如上。
    C++的发明人对“引用”的解释是:对象的别名,不分配存贮单元,直接指向
    对象的地址。所以A& const a 这样的定义是多余的。
    您可能把“引用”和“指针”混淆了。