초기화 리스트 (Initializer list)

생성자 호출과 동시에 멤버 변수들을 초기화 해주는 것 

 

(생성자 이름) : var1(arg1), var2(arg2) {}

      -> var = 클래스의 멤버 변수, arg = 멤버 변수들을 무엇으로 초기화할지 지칭 

           var, arg의 이름이 같아도 상관X

 

ex)

Marine::Marine(int coord_x, int coord_y) :

coord_x(coord_x), coord_y(coord_y), hp(50), damage(5), is_dead(false) {}

 

 

초기화 리스트를 사용하면 생성과 초기화를 동시에 수행하는 반면 초기화 리스트를 사용하지 않는 경우 

생성을 먼저 한 뒤 대입을 수행하게 된다. 

 

int a = 10;   //  초기화 리스트를 사용한다면 

int a;

a = 10;       // 초기화 리스트를 사용하지 않는다면 

 

클래스 내부에 레퍼런스 변수, 상수를 넣고자 하는 경우에도 초기화리스트를 사용하여 초기화 시켜주어야 한다.

전달받을 값을 인자로 받은 뒤 상수에 넣어주는 방법도 가능하다. 

ex)

default_damage(default_damage); 해당 코드는

const int default_damage = (인자로 받은 default_damage); 를 실행한 것과 마찬가지이기 때문이다. 

'c++' 카테고리의 다른 글

String class  (0) 2020.08.18
explicit, mutable  (0) 2020.08.18
참조자 (레퍼런스 - reference)  (0) 2020.08.17
이름 공간 - namespace  (0) 2020.08.15
const가 붙은 멤버함수  (0) 2020.08.15
TAGS.

Comments