我有一个指向对象的指针.如何调用期望引用的函数?

pde*_*eva 0 c++ pointers reference

我有一个函数,它接受一个对象的引用:

void move(Ball& ball);
Run Code Online (Sandbox Code Playgroud)

我有另一个函数调用'move()',它有一个指向ball的指针:

void foo(Ball* ball){
 //call move()
}
Run Code Online (Sandbox Code Playgroud)

foo()应该如何将球传给move()

应该是这样的:

move(*ball);
Run Code Online (Sandbox Code Playgroud)

要么:

move(ball);
Run Code Online (Sandbox Code Playgroud)

要么:

move(&ball);
Run Code Online (Sandbox Code Playgroud)

Fre*_*son 11

第一个,移动(*球).

第二个,move(ball)尝试传递指针和第三个,move(&ball)尝试传递指针指针.


Ste*_*owe 6

移动(*球);

这就是原因.您可以将引用视为基本上指向它所传递的对象的指针.因此,您需要对象本身,而不是指针.如果你调用move(ball),你将获得指针的引用(指针),而不是对象.相反,移动(*球)取消引用指针,然后引用取得该解除引用对象的指针.