References补充 - AntonioLMH/C-Tutorial GitHub Wiki

1.如果作为class member,开始未声明初始化,则必须在构造函数里进行初始化。 eg. class X{ public: int& m_y; X(int& a); };

X::X(int &a): m_y(a){ }

2.如果要从function里返回reference。 返回值不能是本地变量的地址。 返回reference一定是直接的变量。 eg: main(){ for (int i=0; i<SIZE; i++){ myarray[I]= I*0.5; } double value = subscript(12); subscript(3) = 34.5;//这时reference可以作左值 }

3.传const的reference防止被修改: Person(const string & name, int weight);

eg. void func(int &); func(i*3); //const int的临时变量只能给const int&