取消引用引用

时间:2016-07-15 04:52:18

标签: c++ pointers reference dereference

我正在阅读" C ++编程语言(第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取消引用?

1 个答案:

答案 0 :(得分:5)

您在发布的代码中的评论中说:

// assume that C is a container of pointers

这意味着x是对指针的引用。 *x计算为指针指向的对象。

op必须指向对象或对象的引用,而不是指向对象的指针。