4

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

std::string VAR = "HELLO_WORLD";

但是cpplint告诉我:

不允许使用静态/全局字符串变量。[运行时/字符串] [4]

你知道为什么吗?

4

1 回答 1

6

为免生疑问,语言本身允许这样做。

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

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

另一方面,

const char* VAR = "HELLO_WORLD";

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

于 2017-12-20T14:27:48.710 回答