초기화 리스트 (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.