c++

C++ 개인 필기(10) 초기화 리스트

Voitcon 2024. 2. 6. 18:20

변수 초기화를 해야하는 이유 -> 초기화를 안하면 쓰레기값이 들어가기 때문

초기화 방법

1. 생성자 내에서

2. c++11 방법 -> 선언과 동시에 초기화

3. 초기화 리스트 ->선처리 영역에서 초기화

클래스 생성시

Warrior() 1순서

Warrior(AActor) 2순서

~Warrior() <- Warrior() 3순서

~Warrior() <- AActor 의 소멸자 4순서

초기화 리스트 방법

public

Warrior() : Player(1), hp(100) ////

생성자 내에서 초기화 vs 초기화 리스트

1. 일반변수는 별로 차이가 없다.

2. 멤버타입이 클래스인 경우 차이가 난다.

 

만약 Warrior 클래스 안에 Weapon 클래스를 선언한다면

-> 선처리 영역에서 같이 만들어짐, weapon은 warrior에 따라 생성하고 소멸함.

 

IS - A (Warrior is a Player) 전사는 플레이어다 ok 상속

Has - A (Warrior Has a Weapon) 전사는 무기를 가지고 있다. -> 포함관계

 

-> 초기화 리스트를 사용해야 기타 생성자만 실행된다.

즉 초기화 리스트가 더 좋다.

정의함과 동시에 초기화가 필요한 경우 (참조, const)

->초기화 리스트에서 실행