본문 바로가기

CS 지식

[C++] static

1. static 멤버 변수

클래스의 static 멤버 변수는 모든 클래스의 인스턴스들이 공유하는 멤버다.

프로그램이 종료되기 전까지 한 번만 초기화되면서 계속해서 메모리에 올라가 있게 된다.

반드시 cpp 파일에서 초기화해야 하지만, static const 변수의 경우 클래스에서 초기화가 가능하다. 값 변경이 불가능하고, 컴파일 타임 초기화가 가능하기 때문이다.

접근 지정자가 private이라 하더라도 전역범위 초기화가 가능하다.

 

2. static 멤버 함수

클래스의 static 함수는 모든 클래스의 인스턴스들이 공유하는 함수다.

객체와는 관계없이 호출될 수 있고, 이 함수 내에서는 일반 멤버 변수(this가 붙은 멤버)에 대한 연산을 할 수 없다.

static 멤버 변수, 함수에 대한 연산을 수행할 수 있다.

 

참고자료

https://github.com/Romanticism-GameDeveloper/GameDeveloper-Client-Interview/blob/main/C%2B%2B/static.md

https://kukuta.tistory.com/434

'CS 지식' 카테고리의 다른 글

[C++] template  (0) 2025.05.08
[C++] struct vs class  (0) 2025.05.08
[C++] map vs unordered_map  (0) 2025.05.08
[C++] malloc(), free() vs new, delete  (0) 2025.04.20
[C++] const와 pointer  (0) 2025.04.20