C ++中不允许使用static / global变量

时间:2017-12-20 14:27:03

标签: c++ cpplint

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

std::string VAR = "HELLO_WORLD";

但是cpplint告诉我:

  

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

你知道为什么吗?

1 个答案:

答案 0 :(得分:5)

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

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

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

另一方面,

const char* VAR = "HELLO_WORLD";
发出

,因为这只不过是将只读const char[]文字赋值给适当的指针。