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[]
文字分配给适当的指针。
我在我的 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[]
文字分配给适当的指针。