static은 범위의 제한을 받는 전역 변수다

범위???

1. 파일 속

2. 네임스페이스 속

3. 클래스 속

4. 함수 속

 

extern키워드

다른 파일의 전역변수에 접근을 가능하게 해줌

하지만 static을 사용하면 extern으로 접근이 불가능

 

static을 이용한 정적 멤버 변수는 클래스당 하나의 copy만 존재(똑같은 클래스를 여러개로 생성해도 같은걸 공유)

개체 메모리 레이아웃의 일부X 클래스 메모리 레이아웃에 포함

exe파일 안에 필요한 메모리 잡혀있음(미리 만들어둠)->전역변수처럼

 

함수안에 정적변수넣기X->클래스안에 넣기

전역변수 대신 정적 멤버변수 사용->범위제한이 필요

C스타일의 정적 변수는 사용할 이유가 없다 (가끔 사용하는 사람이 있다)

 

정적 멤버 함수는 논리적 범위에 제한 된 전역 함수

해당 클래스 정적 멤버에만 접근 가능

개체가 없어도 정적 함수 호출 가능

ex) Math::square(10);

 

정적 메서드에서 비정적 메서드를 사용하려고한다면??->컴파일 에러

'C++' 카테고리의 다른 글

C++ 13일차  (0) 2021.06.28
C++ 12일차  (0) 2021.06.27
C++ 10일차  (0) 2021.06.23
C++ 9일차  (0) 2021.06.21
C++ 8일차  (0) 2021.06.17

+ Recent posts