Evi*_*ach 0 c++ reference overwrite
这是一个伪代码示例
vector<Fred> gFred;
{
// init gFred
Fred &fred = gFred[0];
size_t z = 0;
do
{
fred = gFred[z];
// do odd processing with fred
z++;
}
while (fred.lastElementInSet == 0);
}
Run Code Online (Sandbox Code Playgroud)
引起我注意的是gFred [0]被覆盖的事实.这让我认为,而不是将init作为对新元素的引用,
fred = gFred[z];
Run Code Online (Sandbox Code Playgroud)
实际发生的是gFred [1]覆盖了gFred [0].
我正在考虑在这里做正确的事情,就是把我自己的头脑转过头几次,把它变成一个指针实现并继续我的生活.
我是否正确诊断了这个?还是我需要更多的教育?