Manger클래스가 Employee클래스를 상속받을때 생성자 호출에 관한 코드이다.
멤버 변수와 멤버 함수들이 어떻게 오버라이딩 되는지 위한 연습이다.
- 첫번째로 클래스 멤버 변수(rank_)의 초기값을 1로 설정하였다. 이러면 따로 rank_값을 설정하지 않으면
rank: 1이된다. - 두번째로 초기화 리스트를 사용하여 디폴트생성자(Employee() : rank_(3) {}을 해주었다.
이러면 디폴트 생성자가 호출될 경우 rank: 3이된다. 초기화 리스트는 생성과 동시에 초기화를 해주는데 c++에서 상수와 참조자(&)는 생성과 동시에 초기화를 해야 하기떄문에 쓴다. - 세번째로 Manager(Manager(char * name)생성자가 생성될때 호출될 Employee 클래스의 생성자를 따로 설정하지 않아서
디폴트 생성자인 Employee()가 호출이 되고 Employee네임 스페이스의 rank_는 3이 되지만, Manger(char* name)생성자에서 오버라이디된 rank_값을 2로 초기화 해주므로 cout<< rank_;값은 2가 출력된다.