我对最佳做法感到好奇。让我们假设我需要构建一个不应该被修改的对象:
void fn() {
const std::string& ref_to_const = "one";
...
const std::string const_object = "two";
...
}
临时对象和const对象的生命周期将是相同的。那么使用什么方法呢?
答案 0 :(得分:6)
那么使用什么方法?
通常,更具表现力的是:普通const std::string
。
常量引用可以绑定并延长临时值的生命周期的事实主要用于使临时值的引用调用成为可能。没有理由在像你这样的情况下使用它。
答案 1 :(得分:3)
您创建一个实例,并使用存储该实例的引用只是混淆了这一事实。使代码显式化:您创建一个实例,因此将其声明为实例,而不是作为引用:
const std::string const_object = "two";