同一个引用如何绑定不同的对象
How is the same reference binding different objects?
我们知道,一旦将一个对象绑定到引用,就无法将另一个对象重新绑定到该引用。但在以下范围的for
语句中,同一引用按顺序绑定到不同的对象或元素。
std::string s;
for(auto &i:s)
{/*each character is referred sequentially*/
}
这怎么可能?
相同的引用绑定到不同的对象
它是而不是相同的引用。引用i
(而不是它所指向的对象(在循环的每次迭代中都会被破坏和重新构造,因此它们是不同的引用。另请参阅下面大卫的评论。
但在下面的语句范围内,同一引用按顺序绑定到不同的对象或元素。
不,没有。
看看这个:
void foo()
{
int x = 1;
}
void bar()
{
int x = 2;
}
两个x
是不同的变量,对吧?
循环中的i
也是如此。这就是它的工作定义。你在这里写的不是老式的for (int i = 0; i < N; i++)
。
相关文章:
- 有没有办法将重载的类函数绑定到函数对象?
- Opengl 3/4 : 我可以将相同的缓冲区对象绑定到不同的目标吗?
- 未定义的对象(〔basic.life〕/8):为什么允许引用重新绑定(和常量修改)
- 如何发送通过绑定到函数/方法创建的函数对象?
- 与类而非对象绑定的可变变量
- 为什么临时对象可以绑定到常量引用?
- 无法在 QML/C++ 中使用绑定对象初始化 UI
- 实现功能对象绑定而无需使用C 11
- 是否可以将匿名 lambda 函数绑定到对象以允许 lambda 中的代码访问对象的成员?
- RValue 引用在将其绑定(非指针)对象分配给另一个指针后是否会删除该对象?
- 如何将Boost ::函数对象与所有参数绑定
- 将临时对象绑定到常量引用
- 为什么免费存储区中对象的生存期绑定到范围
- C++17:是编译器为(静态存储持续时间)const引用绑定创建的可修改的临时对象(和存储)
- opengl:两个不同的矢量可以绑定到同一个顶点数组对象吗
- 为每个对象绑定不同的纹理
- std ::将参数绑定到没有对象的情况下的成员函数
- 结构化绑定中的const引用扩展了分解对象的寿命
- c++临时对象绑定到实参并返回const引用值
- 如何通过pthreads将类成员函数与类的对象绑定以创建线程