변수 초기화를 해야하는 이유 -> 초기화를 안하면 쓰레기값이 들어가기 때문
초기화 방법
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)
->초기화 리스트에서 실행
'c++' 카테고리의 다른 글
C++ 개인 필기(12) static (1) | 2024.02.13 |
---|---|
C++ 개인 필기(11) 클래스의 연산자 (0) | 2024.02.07 |
C++ 개인 필기(9) 은닉성 다형성 (0) | 2024.02.01 |
C++ 개인 필기(8) 객체지향 생성자 (0) | 2024.01.31 |
C++ 개인 필기(7) 생성자 소멸자 (1) | 2024.01.26 |