초기화리스트
-
Tip : 생성자 초기화 리스트와 생성자 바디에서의 초기화 차이@ 16. 1 ~ 17. 1/C++ 2014. 4. 26. 12:27
C++에서 객체를 생성할 때는 생성자를 호출하기 전에 모든 데이터 멤버들이 먼저 생성되어 메모리에 할당된 상태여야 한다. 이때 객체타입인 데이터 멤버는 생성자가 호출되고 기본 타입들은 그 데이터가 할당된 메모리에 남아 있는 임의의 값을 가지게 된다. 생성자 초기화 리스트는 이러한 과정에서의 멤버에 대한 생성자 호출과 기본 타입 데이터의 초깃값을 선택할 수 있게 해준다. *데이터 멤버 클래스가 디폴트 생성자를 제공하지 않는다면 반드시 생성자 초기화 리스트를 이용해서 그 멤버 클래스의 명시적인 생성자를 호출해 주어야 한다. 예를 들어 class A { public: A(double a); }; 있고(디폴트 생성자는 없음 명시적인 double 타입 생성자만 있다) 다음에는 이 클래스를 데이터 멤버로 가진 다른..