[C++] 정적(static) 변수
카테고리: Cpp
태그: Keyword
이 글은 C++ 정적(static) 변수를 공부하고 정리한 글입니다
정적(static) 변수
-
범위(scope)의 제한을 받는 전역 변수
함수 속 정적 변수
void Increase() { static int num = 0; // 여기 줄은 처음 num값을 초기화해줄때만 호출 num++; } num = 10; // 외부에서는 접근 불가
- 함수 속 정적 변수는 함수 안에서만 접근이 가능하다
정적 멤버 변수
// Cat.h class Cat { public : Cat(); private : static int mCount; }; // Cat.cpp int Cat::mCount = 0; Cat::Cat() { mCount++; }
- 클래스당 하나의 COPY만 존재
- 개체의 메모리 레이아웃의 일부가 아님
- 클래스 메모밀 레이아웃에 포함
-
exe파일 안에 필요한 메모리가 잡혀 있음
정적 멤버 변수 베스트 프랙티스
- 함수안에서 정적 변수를 넣지 말 것
- 클래스 안에 넣을 것
- 전역변수 대신 정적 멤버변수를 쓸 것
- 범위를 제한하기 위해
- C스타일의 정적변수를 쓸 이유가 이제 없음
- 함수안에서 정적 변수를 넣지 말 것
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기