1. 정적 멤버 변수는 클래스의 모든 객체가 공유하는 변수이다.


위 객체가 생성된 횟수를 count하기 위한 정적 멤버 변수 num을 정의하면 모든 객체가 공유하는 변수를 만들 수 있다.


임의의 전역 변수를 사용할 때보다 가독성이 좋고, 만일 정적 멤버 변수를 private에 놓는다면 클래스 외부에서 접근을 막을 수 있다.


모든 객체가 공유하기에 객체 생성 전에도 존재한다.


2. 정적 멤버 변수를 사용하기 위해선 위의 Line 18서처럼 반드시 클래스 외부에서 선언을 해야 한다.

(C++11부터 멤버 변수는 선언문에서 바로 초기화가 가능하나, 정적 멤버 변수는 불가능하다)


이때 선언부와 구현부를 나눈다면, 외부선언은 구현 파일에 작성한다.


단, static const 변수는 Line 8처럼 클래스 내부에서 바로 초기화하는 것이 가능하다.


3. 정적 멤버 변수는 

(클래스명)::정적변수명 또는

(멤버변수).정적변수명 으로 접근 가능하다.


단 가독성을 위해 전자의 방법이 권장된다.



+ Recent posts