在C ++中通过引用传递指针是否有好处?

在C ++中通过引用传递指针是否有好处?

在C ++中通过引用传递指针有什么好处?

最近,我看到一些例子选择通过指针传递函数参数而不是通过引用传递。这样做有好处吗?

例:

func(SPRITE *x);

随叫随到

func(&mySprite);

func(SPRITE &x);

随叫随到

func(mySprite);


LEATH
浏览 610回答 3
3回答

偶然的你

一个指针可以接收一个NULL参数,一个参数参数不能。如果您有可能想要传递“无对象”,则使用指针而不是引用。此外,通过指针传递允许您在调用站点显式地查看对象是通过值还是通过引用传递:// Is mySprite passed by value or by reference?  You can't tell // without looking at the definition of func()func(mySprite);// func2 passes "by pointer" - no need to look up function definitionfunc2(&mySprite);

一只甜甜圈

艾伦·霍鲁布的“足够的足球射门”列出了以下两条规则:120. Reference arguments should always be `const`121. Never use references as outputs, use pointers他列举了为什么将引用添加到C ++的几个原因:它们是定义复制构造函数所必需的它们是操作员超载所必需的const 引用允许您在避免复制的同时具有按值传递的语义他的主要观点是参考不应该用作“输出”参数,因为在呼叫站点没有指示参数是参考还是值参数。所以他的规则是只使用const引用作为参数。就个人而言,我认为这是一个很好的经验法则,因为当参数是输出参数时它会更清楚。然而,虽然我个人同意这一点,但我确实允许自己受到团队中其他人的意见的影响,如果他们争论输出参数作为参考(一些开发人员非常喜欢它们)。
打开App,查看更多内容
随时随地看视频慕课网APP