【问题标题】:C++ function parameter as referenceC++ 函数参数作为参考
【发布时间】:2010-09-20 18:07:03
【问题描述】:

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

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

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

谢谢:)

【问题讨论】:

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


    【解决方案1】:

    Record(&r)Record &r 是相同的类型声明。我不知道为什么有人会包括括号,除非出于文体原因。也许它是重构留下的一些杂物?

    【讨论】:

    • 我的猜测是作者正在与某人就& 的含义(参数名称或参数类型)发生风格之战,并决定用括号来加强他的观点。
    • 这只是书中的一个例子。感谢您的帮助
    【解决方案2】:

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

    Record f() { }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 2019-11-29
      • 2023-03-13
      • 2019-12-28
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      相关资源
      最近更新 更多