static은 변수를 전역변수와 같이 데이터 영역에 저장하여 프로그램이 종료되기 전까지 변수가 메모리 공간에서 소멸 되지 않지만, 전역변수와 달리 static 변수는 지역변수 처럼 해당 함수에서만 사용이 가능했다.
프로그래밍을 하다보면 전역변수를 사용해야 하는 순간이 있지만 원하지 않는 순간에 해당 변수에 접근이 가능 하기 때문에 안정성이 떨어지게 된다.
만약 각각의 객체에 순서를 먹이고 싶은 경우에 static변수를 이용하여 다음과 같이 사용이 가능하다.
결과는 전역변수를 사용할 때와 같이 나온다.
static 멤버는 Person이라는 객체에서 접근할 수 있는 권한을 얻는 것이지 내부 멤버로 존재하는 것이 아니다.
main 함수 이전에 메모리 공간에 올라가 초기화 되는 것이며, private으로 선언 했기때문에 main이전에 초기화 하는 것 이외에는 접근이 불가능 하다.
만약 public으로 static 변수를 선언하면 접근 권한을 얻은 것이기 때문에 외부에서도 Person::count =1 이런식으로 접근하여 main함수나 다른 함수에서도 접근이 가능하다.
'Programming > C/C++' 카테고리의 다른 글
클래스와 const (0) | 2015.01.15 |
---|---|
복사생성자와 얕은복사 (0) | 2015.01.15 |
friend 선언 (0) | 2015.01.14 |
class의 정보은닉과 캡슐화 (0) | 2015.01.13 |
reference와 pointer의 차이 (0) | 2015.01.13 |