*&的含义是什么?一起使用

时间:2014-02-20 09:20:03

标签: c++

class parent
{ 
    protected:
        int a;
};

class child : public parent
{
    public:
    void addOne(parent * &);
};

void child::addOne(parent * &parentClass)
{
     a=5;
    }

int main()
{
    parent a;
    child b;
    parent* ap = &a;
    b.addOne(ap);
}

在上面的示例 *和& 中,两者都在*&这样的函数参数中使用,任何正文都可以解释它的引用或指针是什么意思吗?

4 个答案:

答案 0 :(得分:3)

它是指针的引用。

在幕后,编译器将传递指针的地址。

虽然您的示例未显示,但引用通常用于

  • 更改传递的参数(在本例中为指针)。
  • 保存对象的不必要副本(使用const引用时)。

答案 1 :(得分:3)

当您需要修改指针时,不仅要修改它指向的数据,还应该将引用传递给指针。就像任何其他变量一样。

答案 2 :(得分:1)

它表示对指针变量的引用。

您可以传递指针类型的变量,该方法可以是变量的值。这意味着您可以更改原始指针指向的内容。

答案 3 :(得分:0)

它被称为ref-to-pointer。 它类似于ptr-to-ptr,但是在c ++语言中有一些与ref vs ptr不同的区别。