关于以下代码,我希望能够有一些澄清。我们有一个指向类的指针数组。接下来,我们使用基于范围的循环遍历该数组。对于这个基于范围的循环,使用了auto&
。但是,当我们使用元素a
时,可以使用箭头运算符调用函数。
此代码是使用C++11编译的。
// Definition of an array of pointers to some class.
some_class* array[10];
// The array of pointers is set.
// Loop over the array.
for(auto& a : array)
{
// Call some function using the arrow operator.
a->some_func();
}
我的理解是auto&a
是一个指针引用,这不是有点过头了吗?使用auto a
不会创建指针的副本并占用相同的内存吗?
array
指针的值,那么你需要使用auto&
,如果不想修改它,只需要使用auto
来读取a
指针所指向的数据。 - rafix07