最近我在代码审查中看到了以下代码片段:
const QString& temp("some text");
const QString& temp1("some text1");
(...)
if (temp == "whatever")
{
}
// etc
因为这样的临时对象对我来说看起来有点奇怪,我只是想问问是否有人可以解释以这种方式构造对象的优缺点是什么?我会选择 const 对象 - 我会错过那里的任何东西吗?
最佳答案
你可以选择一个更好的例子。
使用 ref 变量的一些优点是:
1) ref 名称可能会为代码添加一些含义/文档。例如:
const QString& protocol_start("ABC1RQA666T");
字符串“ABC1RQA666T”毫无意义,但 protocol_start 可能会提供更多关于该字符串代表什么的线索。
2) 如果引用被多次使用,那么使用引用可能会更方便。
3) 使用引用相当“便宜”,因为毕竟它只是一个别名。
但在某些代码中,您可能会看到 ref 未被多次引用的情况,并且 ref 名称几乎没有增加额外的文档值(value),因此在这些情况下它不是很有用。
关于c++ - 构造局部对象——常量引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45859138/