Я новичок в C++ и до сих пор в процессе обучения фазы, так что это может быть простой и, возможно, глупый вопрос к вам, (C++ Статический класс член Инициализация
Из других вопросов и ответов на доске, я узнал, что обычно и предпочтительно инициализировать частный член данных статического класса в файле cpp вместе с другими определениями функций-членов.
Однако возможно ли инициализировать функцию-член как глобальную переменную в main.cpp? Поскольку все объекты должны делиться одним статическим элементом данных, почему бы просто не инициализировать его там? (я бы подумал, инициализируя его в самой себе, но я бы предположил, что это выплюнет ошибку компиляции)
Не могли бы вы объяснить, если это технически не правдоподобно или просто не сделано традиционно. Так как статический член данных инициализирован в файле cpp класса как глобальная переменная в любом случае, я не вижу причины, по которой инициализация его в главном cpp завершится с ошибкой. Пожалуйста, порекомендуйте.
Возможный дубликат [Инициализация частных статических членов] (http://stackoverflow.com/questions/185844/initializing-private-static-members) – xmoex
Вам необходимо инициализировать вне класса: http: //www.learncpp. com/cpp-tutorial/811-static-member-variables/'int Something :: s_nValue = 1;' –
Подумайте дважды, прежде чем использовать статические члены, если они не являются константами. Ловушки, с которыми вы можете столкнуться, включают SIOF и условия гонки. Последний применяется только тогда, когда вы или кто-то еще хотите делать что-то параллельно с вашим классом. – user877329