C ++函数参数作为参考

时间:2010-09-20 18:07:04

标签: c++ qt reference coding-style parentheses

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

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

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

谢谢:)

2 个答案:

答案 0 :(得分:11)

Record(&r)Record &r是相同类型的声明。我不知道为什么有人会包括括号,除了文体的原因。也许这是重构遗留下来的一些遗留问题?

答案 1 :(得分:0)

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

Record f() { }