c++ - 使用 const 引用与 const 变量声明常量文字字符串

标签 c++

我必须用常量字符串来命名窗口。这些名称将在任何地方被引用,所以我需要用变量来缓存它们。我的问题是

我是否需要将变量声明为常量引用,如下所示

const string& srcWnd = "Source Window";

代替

const string srcWnd = "Source Window";

?

有什么区别吗?

最佳答案

我没有发现两者之间有任何显着差异,但我建议使用普通 string(选项 2):

const string srcWnd = "Source Window";

您不会通过引用赢得任何东西。如果您使用引用,代码将变得更加晦涩,因为通过使用引用,您依赖于 temporary lifetime extension .如果有人没有清楚地记住生命周期延长规则,他们可能需要查找这些规则以确保代码有效。

关于c++ - 使用 const 引用与 const 变量声明常量文字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55504881/

相关文章:

c++ - 函数参数中的 '&' 放在哪里?

c++ - C 或 C++ 中好的 goto 示例

c++ - DIY堆栈保护

c++ - 内存错误及相关

c++ - 有没有办法在不使用 Friend 类(C++)的情况下防止从另一个类使用公共(public)函数

c++ - 如何从opencv图像矩阵中获取字节?

c++ - 模板相关的名称解析不应该找到没有链接的声明?

c++ - 带有 C++ 模板的 SWIG : undefined symbol

c++ - 有什么方法可以创建一个可以作为参数传递的 16 字节对齐的类

java - 设计音频架构