【发布时间】:2013-06-27 13:49:24
【问题描述】:
我有兴趣在整个程序中一次性使用一个全局变量。所以我认为实现这一点的最佳方法是在头文件中定义它,如下所示:
extern const std::string CONST_STR = "global string";
但这导致了“双重释放或损坏”运行时错误。
删除extern 使问题消失。
- 谁能解释这种行为?
- AFAIK,如果没有
extern定义,每个翻译单元都会有一个 CONST_STR,难道没有办法获得一个完全 const 的全局变量吗?
【问题讨论】:
-
这是否有效?你应该使用外部或初始化器
-
@BalogPal 与
const有效。extern只是意味着“不是静态的”。
标签: c++ global-variables constants extern