본문 바로가기
C++

Static 변수, 함수

by geniee_1 2021. 7. 29.
728x90

# Static 이란?

- static 키워드를 이용한 변수와 함수는 프로그램 실행중에 딱 한번만 할당되고 종료될때 해제 되는 것을 의미

- Static 영역에 생성 되어 객체를 생성하지 않아도 호출가능

 

# Static 함수

 - 정적 멤버 함수, 객체없이 호출 가능
 - 일반적으로 객체없이 호출할경우 어떤 문제? 멤버에 접근이 안돼( 왜? this가 없어 )
                                       => but 정적 멤버 접근 가능 ( static 키워드가 붙은 멤버 )

 

# Static 변수 ( 데이터 영역 )
  1. 함수 안에 선언 될때 : 해당 함수에서만 접근 가능
  2. 클래스 안에 선언 : 해당 클래스에서만 접근 가능
  3. 파일 안에 선언 : 해당 파일에서만 접근 가능
                                        => 초기화가 처음에 한번만 발생하고 콕 박혀있음

 

 - Static 멤버 변수는 반드시 클래스 외부에서 초기화 해주어야 함

 

정적 멤버는 정적 멤버함수에서만 접근 할 수 있다. (X)
정적 멤버 함수는 정적 멤버에만 접근 할 수 있다. (O)

 

# 예시