Статическая / глобальная переменная не разрешена в C++

Я определил глобальную переменную в своем классе C++ следующим образом:

std::string VAR = "HELLO_WORLD";

Но cpplint говорит мне:

Статические / глобальные строковые переменные не допускаются. [время выполнения / строка] [4]

У тебя есть идея почему?

1 ответ

Решение

Во избежание сомнений, сам язык это допускает.

По сути, статический анализатор, который вы используете, запрещает это, потому что std::string содержит конструктор, поэтому оператор фактически "что-то делает".

Поэтому он должен быть внутри функции, а не в глобальном масштабе.

С другой стороны,

const char* VAR = "HELLO_WORLD";

испускается, так как это не более чем назначение только для чтения const char[] литерал к соответствующему указателю.

Другие вопросы по тегам