我必须使用常量文字字符串来命名窗口。这些名称将在任何地方被引用,因此我需要将它们与变量一起缓存。我的问题是
是否需要按以下说明将变量声明为const引用
const string& srcWnd = "Source Window";
代替
const string srcWnd = "Source Window";
?
有什么区别吗?
答案 0 :(得分:2)
我没有发现两者之间有任何显着差异,但是我建议使用普通的string
(选项2):
const string srcWnd = "Source Window";
通过引用您不会赢得任何奖励。而且,如果您使用引用,则代码会变得更加晦涩难懂,因为使用引用会依赖temporary lifetime extension。如果某人没有清楚地记住生命周期扩展规则,则可能需要查找它们以确保代码有效。