如果reference(&)是一个本地变量或者全局变量,那么初始化的时候,需要给它另外一个变量的名字,即与另外一个变量绑定。如果reference是函数的参数或者是成员变量的话,没有办法在声明的时候给它捆绑,因为不知道这个reference在构造一个对象时和谁捆绑在一起,所以只能写出来一个声明,然后必须放在构造函数的初始化列表里说明,否则编译时报错error。
如果要返回一个reference,与要返回一个指针类似,函数里不能返回本地变量的地址作为指针或reference,函数里return返回处就是一个变量,不能写*或&,返回的变量以后要与别的*或者&结合在一起,所以这个变量必须是一个有长久生命周期的一个东西,如全局变量
虽然subscript函数返回的是一个double reference,但是可以给double类型变量赋值。
当需要传一个对象进入函数的时候用const & 修饰这个对象。几乎就这一个方法<(^-^)>
i*3 计算结果是一个临时的const int 变量,本质上不能给 int & 传值,会报错即用 non-const 初始化 const 东西。如果函数参数是void func(const int&)那么允许 i*3 计算结果传进去。



