У меня есть заголовочный файл, в котором есть статические переменные для всех моих файлов.У меня там есть логическая переменная, инициализированная 0 -
//in utility.h
static bool read_mess = false;
, которую я хочу изменить на true, если --view-read-messages находится в аргументах командной строки, чтобы я мог сделать что-то подобное, когдаЯ получаю сообщение от клиента -
//code from a different file
if(UTILITY_H::read_mess)
std::cout<<"\nMessage successfully received from Client 2: "<<in2;
В основном я проверяю аргумент командной строки и устанавливаю переменную read_mess в true -
//this is in a for, where temp is the command line arg[i]
else if(strcmp(temp.c_str(), "--view-read-messages") == 0) {
UTILITY_H::read_mess = true;
}
Я могу напечататьЗначение read_mess после этой строки в main и говорит, что это правда.Но когда я проверяю, верно ли это в операторе if, который я разместил выше, read_mess возвращается к falseПочему это происходит?Я уверен, что это просто что-то простое, но я не могу заставить его работать.Все переменные в utility.h переинициализируются каждый раз, когда я выполняю UTILITY_H ::?И если да, то почему?