본문 바로가기

카테고리 없음

[C++]상속, 생성자 예제 코드 -1

Manger클래스가 Employee클래스를 상속받을때 생성자 호출에 관한 코드이다.

멤버 변수와 멤버 함수들이 어떻게 오버라이딩 되는지 위한 연습이다.

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