Example)
- Base 클래스에 Level 변수 선언
- Player 클래스와 Enemy 클래스는 모두 Base 클래스를 상속받음
- Level은 각 인스턴스에서 고유하게 관리되는 멤버 변수임
- Player와 Enemy는 Base를 상속받았으나, 각 클래스는 독립적인 인스턴스를 가짐
- 따라서, Player와 Enemy 각각의 Level은 독립적으로 관리됨
- 예를 들어, Player클래스에서 Level을 ++함
- 이 Level 변수는 Player 클래스 인스턴스에 속해 있으므로, Enemy의 Level 변수에는 전혀 영향이 없음
- 적의 Level은 그대로 유지되고, Player 클래스의 Level만 올라감
- 상속받은 멤버 변수는, 상속받는 클래스가 생성될 때 각 인스턴스마다 독립적으로 다시 생성됨
- 따라서, 상속받는 클래스들에서는 각각 고유한 멤버 변수값을 갖게 됨
- 상속은 구조(멤버 변수와 함수)를 공유할 뿐, 데이터(변수의 값)는 공유하지 않음
- 각각의 상속받는 클래스들에서 상속받은 멤버 변수들은 각각 별도의 메모리 공간에 따로 저장됨
- 그러나 만약에 static을 사용하여 변수를 선언한다면, 모든 인스턴스가 같은 변수를 공유하게 됨
'UE5 Coding : 게임 제작 기초 > Class' 카테고리의 다른 글
| BeginOverlap 바인딩 함수 (0) | 2025.08.20 |
|---|---|
| GameInstance 와 Singleton (2) | 2025.08.18 |
| Interface (0) | 2025.06.23 |