2017-08-24 50 views
1

最近我看到一个代码审查过程中下面的代码片段:构建本地对象 - 常量引用

const QString& temp("some text"); 
const QString& temp1("some text1"); 

(...) 

if (temp == "whatever") 
{ 
} 

// etc 

因为这样的临时看起来有点奇怪,我只是想询问是否有人可以解释什么是这种方式构建对象的优缺点?我只想去寻找const对象 - 我错过了什么?

+0

_the评论code_ - 这是什么意思? – 2017-08-24 10:28:26

+0

'代码审查期间' - 对措辞表示歉意 - 更新了说明。 – ARA

+5

要问的正确的人是编写代码的人。如果他们不能证明为什么它是这样写的,那么很明显它应该不能通过审查。 – UKMonkey

回答

0

你可以选择一个更好的例子。

使用参考变量将是几个优点:

1)裁判名称可能增加一些含义/文档的代码。例如:

const QString& protocol_start("ABC1RQA666T"); 

字符串“ABC1RQA666T”是毫无意义的,但protocol_start可以多加线索,以什么字符串代表。

2)如果引用被多次使用,那么使用引用可能会更方便。

3)使用该参考是相当'便宜',因为毕竟它只是一个别名。

但是在某些代码中,您可能会看到ref不会多次引用的情况,ref名称会添加一些额外的文档值,所以在这些情况下它并不那么有用。

+0

如果需要的话,总是可以使'temp'成为一个值并通过const引用传递它。 – AMA