我正在读"The C++ Programming Language (第4版)“,我遇到了这样的情况:
template<class C, class Oper>
void for_all(C& c, Oper op) // assume that C is a container of pointers
{
for (auto& x : c)
op(*x); // pass op() a reference to each element pointed to
}据我所知,我们遍历c并获得对x的引用,这就是当前的迭代。然后将x传递给op的函数调用操作符,但首先取消对它的引用?为什么x会被解除引用?
发布于 2016-07-15 12:58:04
您在发布的代码中的评论中说:
//假设C是一个指针容器
这意味着x是对指针的引用。*x的计算结果是指针指向的对象。
op必须是对象或对对象的引用,而不是指向对象的指针。
https://stackoverflow.com/questions/38388077
复制相似问题