【发布时间】:2010-09-20 18:07:03
【问题描述】:
我有一个问题。谁能告诉我为什么有人会这样声明参数r?
Record&r 和 Record(&r) 有什么区别?
QDataStream& operator>>(QDataStream &s, Record(&r))
{
}
谢谢:)
【问题讨论】:
标签: c++ qt reference coding-style parentheses
我有一个问题。谁能告诉我为什么有人会这样声明参数r?
Record&r 和 Record(&r) 有什么区别?
QDataStream& operator>>(QDataStream &s, Record(&r))
{
}
谢谢:)
【问题讨论】:
标签: c++ qt reference coding-style parentheses
Record(&r) 和 Record &r 是相同的类型声明。我不知道为什么有人会包括括号,除非出于文体原因。也许它是重构留下的一些杂物?
【讨论】:
& 的含义(参数名称或参数类型)发生风格之战,并决定用括号来加强他的观点。
正如理查德所说,Record (&r) 和 Record &r 是等价的。因此,重要的区别在于它们如何有效地传达程序员的意图。我个人更喜欢 Record&r 而不是 Record &r 因为我喜欢将类型与名称分开。也就是说,我会避免使用 Record (&r),因为它看起来与函数类型的语法非常相似。例如,Record (&r)() 会将 r 声明为对如下函数的引用。
Record f() { }
【讨论】: