C++ common sense 10
- 클래스 멤버가 저장되는 영역
클래스는 정적(static)/비정적(non-static) 멤버 변수와 멤버 함수를 가질 수 있다.
- 메모리 구조 (출처: TCP school)
- 멤버 변수
- 비정적(non-static) 멤버 변수는 stack에 할당 된다. 그리고 구조체나 클래스의 크기에 영향을 준다. 또한 런타임 시간에 크기가 결정된다.
- 정적(static) 멤버 변수는 데이터 영역에 저장되며, 구조체나 클래스의 크기에 영향을 주지 않는다. 프로그램 시작 시 크기가 결정된다.
- 멤버 함수
- 정적(static)/비정적(non-static) 함수는 모두 code영역에 저장되어 모든 클래스가 공유한다.
- 차이점은 정적(static)함수는 객체의 생성과 관계 없이 호출될 수 있다는 점이다.