static/global C++ 中不允许的变量

static/global variable not permitted in C++

我在我的 C++ class 中定义了一个全局变量,如下所示:

std::string VAR = "HELLO_WORLD";

但是 cpplint 告诉我:

Static/global string variables are not permitted. [runtime/string] [4]

你知道为什么吗?

为避免疑义,语言本身允许这样做。

基本上虽然您使用的静态分析器禁止这样做,因为 std::string 包含一个 构造函数 所以该语句实际上“做了一些事情”。

因此它需要在函数内部,而不是在全局范围内。

另一方面,

const char* VAR = "HELLO_WORLD";

被发出,因为这只不过是将只读 const char[] 文字分配给适当的指针。