C++函数参数作为引用

3

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

Record& rRecord(&r)之间有什么区别?

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

感谢您的选择 :)
2个回答

11

Record(&r)Record &r 是相同的类型声明。我不知道为什么有人会加括号,除了出于风格上的考虑外。也许这是重构时留下的一些无用之物?


6
我猜作者正在与某人就“&”符号应该与参数名称还是参数类型搭配进行风格之争,并决定用括号强调自己的观点。 - T.E.D.
这只是一本书中的例子。感谢您的帮助。 - Seba

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接