static 키워드는 무엇일까?
객체를 정적 객체로 만들어 준다.


정적 객체는 무슨 뜻인가?
정적 객체는 이것이 생성된 시점부터, 프로그램 종료될 때까지 소멸되지 않는 객체를 뜻한다.
또한 정적 객체에는 지역 정적 객체(local static object)와 비지역 정적 객체(non-static object)로 나뉜다.


왜 간과하지 말아야 하는가?
이런 정적 객체들이 언제 선언되고 정의 되는지 파악하기가 어려울 때가 있곤 하기 때문이다.

또한 이 의미를 잘못 이해하여, 클래스 멤버 변수로써 static을 했을때, 각 객체마다 이 정적 멤버 변수를 가지는 것으로 오해할 수 있으나, 그 클래스에서 전부 한개의 정적 멤버 변수를 사용 한다. 한 파일에서 선언된 비지역 정적 객체의 경우, 다른 파일에서 사용 할때, 그 비지역 정적 객체가 초기화 되는 시점은 정확하지 않기 때문에 또한 오류를 불러 일으키게 될수가 있다.


나의 경우, 대부분 비지역 정적 객체를 사용하기 보다는 지역 정적 객체로 만듬으로써 관리하는게 더 좋았었다.


여담으로, 클래스로 만들수 있는 객체가 0개이거나 1개로 규정만들려고 한다면, 이 static 키워드를 이용해서 객체를 선언하면 .. 아주 쉽게 규현할수가 있었다(More Effective C++ 읽던 중에 배운 스킬)
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요