reference:
"명품 C++ Programming" / 황기태
"전문가를 위한 C++" / 마크 그레고리
static 지정자는 변수와 함수의 생명 주기와 사용 범위를 지정하는 방식 중 하나이다.
c++에서 클래스 멤버 변수와 멤버 함수를 포함하여 모든 변수와 함수는 static 지정자로 선언 가능하다.
함수(블록)을 벗어나도 소멸되지 않는다.(정적 변수) 그렇지만 함수 안에서만 접근할 수 있다. 주로 어떤 함수에서 초기화 작업 수행 여부를 기억하는 용도로 많이 사용한다.
void performTask() {
static bool initialized = false;
if(!initialized) {
cout << "initializing" << endl;
// 초기화 수행
initialized = true;
}
// to do something
}