▣ 안녕하세요.
이번장에서는 static 멤버에 대해 공부해보도록 하겠습니다.
static을 공부할 때는 메모리 영역과 정적, 동적 이런 이야기를 해야 하지만,
이번장에서는 static에 사용 방법과 용도를 간단하게 공부해보겠습니다.
▣ static 멤버 변수와 멤버 함수를 선언하는 건 간단합니다.
선언할 멤버 변수 자료형 앞에 static 키워드를 붙어주시면 됩니다.
여기서 중요한건 static 멤버 변수는 모든 객체를 공유합니다.
그래서 반드시 int Calculator::number = 500; 코드에서처럼
전역 범위에서 정의 및 초기값을 지정해야 합니다.
▣ 메인 함수에서 객체를 각각 선언해주시고 선언한 객체로 static 멤버 변수를 접근하여
static 변수 주소를 출력하는 코드와 sum() 함수를 통해서
static number 멤버 변수에 값을 더해주는 함수를 호출합니다.
저장을 하고 디버그를 해보면
sum(1000) 함수를 호출할 때 c1.number = 1000으로 초기값을 다시 바꾼 멤버 변수에
number +=m을 더한 값으로 2000원이 출력이 되고
c2 객체에는 sum(0) 함수에서 처럼 0을 매개변수에 전달해주었기 때문에
static number에 있는 값 그대로 +=0이 되어
2000원이 그대로 출력되는 걸 확인할 수 있습니다.
다르게 코드를 작성해보면
▣ c2.sum(1000)을 추가해서 값을 더해보면 이렇게 3000원으로
아까 남아있는 2000원 값에 값이 추가되는 걸 확인할 수 있습니다.
정리해보면 static 키워드로 만든 멤버 변수나 함수는 프로그램이 끝날 때까지 값을 유지하고
하나의 형태로 메모리를 공유합니다.
그럼 사용용도를 생각해보면 객체 사이에 공유 변수를 만들 때,
프로그램이 끝날 때까지 값을 유지할때, 아니면 게임에서 보면 게임이 끝날 때까지 유지되어야 할 레벨, 능력치
그리고 킬 데스 데이터 등이 있겠습니다.
'[ C++ ] > - C++ 문법공부' 카테고리의 다른 글
C++ 18장 [템플릿1] (0) | 2022.11.24 |
---|---|
C++ 17장 [프렌드 함수] (0) | 2022.11.18 |
C++ 15장 [디폴트 매개변수] (0) | 2022.11.11 |
C++ 14장 [복사생성자] (0) | 2022.11.11 |
C++ 13장 [참조변수] (0) | 2022.11.04 |
댓글