C++函数参数作为参考

发布于 2024-09-24 12:41:36 字数 208 浏览 6 评论 0原文

我有一个问题。谁能告诉我为什么有人会这样声明参数r

Record 和 Record 有什么区别? r 和记录(&r) ?

QDataStream& operator>>(QDataStream &s, Record(&r))
{
}

谢谢 :)

I have a question. Can anyone tell me why someone would declare parameter r like that ?

Whats the difference between Record& r and Record(&r) ?

QDataStream& operator>>(QDataStream &s, Record(&r))
{
}

Thanks :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

青衫负雪 2024-10-01 12:41:36

Record(&r)Record &r 是相同的类型声明。我不知道为什么有人会包含括号,除非出于风格原因。也许这是重构留下的一些残渣?

Record(&r) and Record &r are identical type declarations. I don't know why somebody would include the parentheses except for stylistic reasons. Perhaps it's some cruft left over from a refactoring?

余生一个溪 2024-10-01 12:41:36

正如理查德所说,Record (&r) 和 Record &r 是等价的。因此,重要的区别在于它们如何有效地传达程序员的意图。我个人更喜欢Record& r 优于 Record &r 因为我喜欢将类型与名称分开。也就是说,我会避免使用 Record (&r),因为它看起来与函数类型的语法非常相似。例如,Record (&r)() 会将 r 声明为对如下函数的引用。

Record f() { }

As Richard said Record (&r) and Record &r are equivalent. So the important difference is how effectively they communicate the intent of programmer. I personally prefer Record& r over Record &r because I like to separate the type from the name. That said, I would avoid the Record (&r) because it looks so similar to the syntax for function types. For example, Record (&r)() would declare r as a reference to a function such as the following.

Record f() { }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文