我的理解:
实际上当一个引用被定义时,它的内部存放的是一个指向对象的指针,这个引用就是此对象的一个别名。当操作引用时,其实是操作了该对象。函数的返回值是临时的常量,无法被寻址,不能直接转换成对象,所以编译器会生成一个临时对象用来存放此常量。引用实际上指向了此临时对象。如果引用不被声明为const,当修改引用值时,相当于修改了临时对象,而修改一个临时对象是没有意义的,因为临时对象对用户是不可见的。为了隐藏这种潜在的无用修改,编译器规定常量的引用必须设为const,这样用户就无法修改此引用了。
实际上当一个引用被定义时,它的内部存放的是一个指向对象的指针,这个引用就是此对象的一个别名。当操作引用时,其实是操作了该对象。函数的返回值是临时的常量,无法被寻址,不能直接转换成对象,所以编译器会生成一个临时对象用来存放此常量。引用实际上指向了此临时对象。如果引用不被声明为const,当修改引用值时,相当于修改了临时对象,而修改一个临时对象是没有意义的,因为临时对象对用户是不可见的。为了隐藏这种潜在的无用修改,编译器规定常量的引用必须设为const,这样用户就无法修改此引用了。
No problem but many questions on my furture way.