关于引用的疑惑C++ Primer P51 上说“不能定义引用类型的引用,但可以定义任何其他类型的引用。”这句话该怎么
关于引用的疑惑 C++ Primer P51 上说
“不能定义引用类型的引用,但可以定义任何其他类型的引用。”
这句话该怎么理解,是指不能定义已经是引用的引用吗?比如下面代码:
int val = 25; int &refval = val; // refval是val的引用 int &refval2 = refval; // refval2是refval的引用,引用的引用 refval--; cout << val << endl; refval2--; cout << val << endl;
编译发现通过,意思是可以这样使用,那就是我理解出错了,求解释,谢谢! c++ 引用 [解决办法] 并不是对引用的引用,只是两个引用指向了同一个变量 [解决办法] int val = 25; int &refval = val; // refval是val的引用 // 引用的引用这样定义 int&& refRefVal; // 这样就是不可以的了 在C++11里面这样写叫做右值引用(move语意),可以做函数参数,这是题外话了,和引用的引用没有关系 [解决办法]
别忘了,引用一旦建立,对引用的所有操作都视为对原对象的操作 refval是val的引用,所以int &refval2 = refval其实是int &refval2 = val [解决办法] 这句话,变化着说就是,你的小名只有一个,张三,张三也是可以有小名的,比如李四。也就是说你不能即使张三又是李四!