将指针赋值给引用

Assigning a pointer to a reference

本文关键字:引用 赋值 指针      更新时间:2023-10-16

我正在使用一个库,它有一个绘制函数,它需要一个圆的引用。我想调用这个函数,但是我有一个指向圆对象的指针。我可以把这个指向的对象传递给draw函数吗?如果不是,为什么不呢?

谢谢,巴里

可以。

你有这个函数

void DoSth(/*const*/Circle& c)
{
   ///
}

你有这个指针

/*const*/ Circle* p = /*...*/;

你这样称呼它

DoSth(*p);

我建议你读一本好的c++书。这是非常基本的东西

只要在引用还在使用的时候指针没有被销毁,就没有问题。

int *p = new int;
int &r = *p;

如果您提供一些问题的代码会更容易。但基本上它是这样工作的:

void func(Circle& circle) {
    // do something
}
...
Circle *pCircle = new Circle();
func(*pCircle);

可以,只要取消对指针的引用,例如:

void functionToCall(Circle &circle);
//in your code:
Circle *circle = new Circle();
functionToCall(*circle);