C++ 如何在C++;

C++ 如何在C++;,c++,pointers,casting,reference,type-conversion,C++,Pointers,Casting,Reference,Type Conversion,如何将指针(Object*ob)传递给原型为void foo(Object&)的函数?如下所示: foo(*ob); 请注意,正如您在问题标题中所建议的,这里没有进行铸造。我们所做的只是取消引用指向对象的指针,然后将其传递给函数 foo(*ob); 您不需要强制转换它,因为它是相同的对象类型,您只需要取消引用它 标题上写着“cast[sic]reference to pointer”,但问题是从一个指针开始的,需要一个参考。它是哪个方向?@MSalters它应该被转换。我正在编辑它。但我一直

如何将指针(
Object*ob
)传递给原型为
void foo(Object&)
的函数?

如下所示:

foo(*ob);
请注意,正如您在问题标题中所建议的,这里没有进行铸造。我们所做的只是取消引用指向对象的指针,然后将其传递给函数

foo(*ob);
您不需要强制转换它,因为它是相同的对象类型,您只需要取消引用它


标题上写着“cast[sic]reference to pointer”,但问题是从一个指针开始的,需要一个参考。它是哪个方向?@MSalters它应该被转换。我正在编辑它。但我一直在寻找我得到的任何解决方案,所以我提到了猜测amd添加了很多。。。这通常不是一个好答案的格式(即使在这种情况下它是正确的),这可能就是为什么你投了一票。bhaaa,我加上“我猜”,因为它让我写了至少30个字符。这也是我加上“……”@RoeeGavirel的方式,我是你的第一个投票人,因为我觉得否决票很严厉。FWIW你可以得到超过30个字符的限制,但添加一个HTML注释,我在我的答案的第一个版本做了!我对你答案的编辑显示了这些天来人们是如何不赞成只使用代码的答案的,没有任何解释。@Keith-这是一个随机的评论,-1。答案大约是6年前给出的,这个问题也没有问“为什么”,只问“如何”。当然,我会加上一个解释。@Ricobob这就是经常发生的事情。对容易理解的简单问题的回答往往会赢得很多支持票。对棘手问题的冗长而复杂的回答往往得不到多少选票,因为选民们无法轻易判断其优劣。至于rep,由于rep cap,我对此一无所知但我衷心同意。我希望复杂的答案有更多的代表性。这是创建了
ob
的副本,还是只是将指针转换(如果不是强制转换)到引用?如果
ob
nullptr
?@它只会取消指针的引用。没有副本。没有转换。没有演员阵容。然后通过引用将对象传递给函数。如果点为null,则为错误。@Drewnoaks只是一个注释:如果希望引用而不传递给函数,请按如下方式使用它:
Object&objref=*ob