最近,我在代码审核期间看到了以下代码段:
const QString& temp("some text");
const QString& temp1("some text1");
(...)
if (temp == "whatever")
{
}
// etc
由于这些临时工对我来说有点奇怪,我只是想问一下是否有人可以解释以这种方式构建对象的优缺点是什么?我会去找const对象 - 我在那里想念任何东西吗?
答案 0 :(得分:0)
你可以选择一个更好的例子。
使用ref变量的一些优点是:
1)引用名称可能会在代码中添加一些含义/文档。例如:
const QString& protocol_start("ABC1RQA666T");
字符串“ABC1RQA666T”没有什么意义,但protocol_start可能会给出关于字符串代表什么的更多线索。
2)如果参考被多次使用,那么使用参考可能会更方便。
3)使用引用相当“便宜”,因为毕竟它只是一个别名。
但是在某些代码中,您可能会看到多次没有引用ref的实例,并且引用名称几乎不会增加额外的文档值,所以在这些情况下它并没有那么有用。