关于C++中的引用,理解了很久,最重要的是&符号放在赋值语句的左边即作为左值,理解为引用,放在赋值语句的右边则理解为取地址。
int& at() { return m_data; }
上面一段代码将引用作为函数的返回值,返回的是是m_data的本体,即在调用这个函数的时候,接收也应该用&receive=at();来接收。
并且为了方便理解,我们可以将&receive=at(); 理解为&receive=m_data; 根据引用取别名的含义,我们可以理解为m_data的别名为receive,即receive和m_data指向同一地址。
有的赋值语句直接利用函数来给变量赋值,即at()=10;可以理解为m_data=10 。
所以cout<<&receive<<endl;
cout<<&m_date<<endl;
cout<<&at()<<endl;
可知,他们返回的是同一地址,即他们都指向m_data指向的内存空间。