我有一个问题。谁能告诉我为什么有人会像这样声明参数r
?
Record&的区别是什么? r和记录(& r)?
QDataStream& operator>>(QDataStream &s, Record(&r))
{
}
谢谢:)
答案 0 :(得分:11)
Record(&r)
和Record &r
是相同类型的声明。我不知道为什么有人会包括括号,除了文体的原因。也许这是重构遗留下来的一些遗留问题?
答案 1 :(得分:0)
正如Richard所说,Record(& r)和Record& r是等价的。因此,重要的区别在于他们如何有效地传达程序员的意图。我个人更喜欢Record&记录& r因为我喜欢将类型与名称分开。也就是说,我会避免使用Record(& r),因为它看起来与函数类型的语法非常相似。例如,Record(& r)()会将r声明为对函数的引用,如下所示。
Record f() { }