(Предполагая однопоточную среду)
Функция, которая удовлетворяет этому критерию:
bool MyClass::is_initialized = false;
void MyClass::lazy_initialize()
{
if (!is_initialized)
{
initialize(); //Should not be called multiple times
is_initialized = true;
}
}
По сути, я могу вызывать эту функцию несколько раз и не беспокоиться о ее инициализации MyClass
несколько раз
Функция, которая не соответствует этому критерию, может быть:
Foo* MyClass::ptr = NULL;
void initialize()
{
ptr = new Foo();
}
initialize()
Многократный вызов вызовет утечку памяти
мотивация
Было бы неплохо иметь одно краткое слово, чтобы описать это поведение, чтобы можно было должным образом прокомментировать функции, которые должны соответствовать этому критерию (особенно полезно при описании функций интерфейса, которые, как ожидается, будут переопределены)