У меня есть программа на C ++, которая заставляет дочерние процессы выполнять некоторую работу.В этих дочерних процессах создаются некоторые классы, и внутри функции-члена есть статическая переменная, например, так:
void MyClass::foo () {
static std::string uuid;
...
uuid = "A new value";
}
Поскольку каждый процесс только что разветвлен, я предположил, что uuid всегда инициализируется как пустая строка.Однако в некоторых случаях я заметил, что uuid уже было присвоено значение при первом входе в функцию, что вызывает проблемы.
Как эту статическую переменную можно инициализировать в разветвленных процессах?И мой единственный вариант использовать переменную класса?Причина статической переменной в том, что я не хотел вводить переменные класса, которые используются только внутри одной функции, чтобы сохранить класс в чистоте и порядке.