(단일 스레드 환경 가정)
이 기준을 충족시키는 기능은 다음과 같습니다.
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()
여러 번 호출 하면 메모리 누수가 발생합니다
동기
이 기준을 충족시킬 것으로 예상되는 기능에 대한 주석을 달 수 있도록이 동작을 설명하는 간결한 단어를 갖는 것이 좋습니다 (특히 재정의 될 것으로 예상되는 인터페이스 기능을 설명 할 때 유용함)