Computer Science/C & C++

[C++] static Class Member Function | static 클래스 멤버 함수

lww7438 2020. 3. 4. 12:59

\(\texttt{static}\) Class Member Function

\(\texttt{static}\) 클래스 멤버 함수

- \(\texttt{static}\) 타입으로 정의한 클래스 멤버 함수를 의미한다.
- 함수 원형과 정의를 분리하였을 경우, \(\texttt{static}\) 키워드는 함수 원형 부분에 선언해야 한다.
- \(\texttt{static}\) 멤버 함수는 어떤 객체에도 결합되지 않으므로, 객체에 의해 호출되지 않는다.
- \(\texttt{static}\) 멤버 함수는 \(\texttt{static}\) 데이터 멤버만 사용할 수 있다.
- \(\texttt{static}\) 멤버 함수는 \(\texttt{this}\) 포인터를 갖지 않는다.
- \(\texttt{static}\) 멤버 함수가 \(\texttt{public}\) 레벨로 지정될 경우, 클래스 이름과 \(\texttt{::}\) 연산자를 통해 호출할 수있다.
- \(\texttt{static}\) 멤버 함수는 Classwide Flag(클래스 사용 범위의 플래그)를 설정하는 데에 유용하게 쓰인다.
Classwide Flag는 클래스 인터페이스의 설정 상태를 의미하는데, 그 예시로 내용을 출력하는 메서드가 사용할 출력 형식 따위가 있다.