joh*_*ers 11 c++ static global-variables
共享标头.
我可以做这个:
const bool kActivatePlayground=false;
包含在多个文件中时工作正常.
我不能做到这一点:
const char * kActivePlayground = "kiddiePool";
导致错误:重复符号.
但这有效:
static const char * kActivePlayground = "kiddiePool";
为什么static需要const char *而不是为了const bool?另外,我认为static没有必要,因为const总是static隐含的?
Ben*_*igt 26
在C++中,const默认情况下变量具有静态链接,而非const变量具有外部链接.
多重定义错误的原因是
const char * kActivePlayground = "kiddiePool";
Run Code Online (Sandbox Code Playgroud)
使用外部链接创建变量.
嘿等等,我不是只说const变量默认为静态链接?是的,我做到了.但kActivePlayground事实并非如此const.它是一个非const指针const char.
这将按预期工作:
const char * const kActivePlayground = "kiddiePool";
Run Code Online (Sandbox Code Playgroud)