본문 바로가기

C++

[C++] 상속받은 멤버 초기화

상속 객체가 생성될 때 생성자가 실행되기 전에 초기화 리스트가 실행된다.

초기화 리스트는 객체의 기반 클래스의 생성자를 호출한다.

 Coord(int ax, int ay) { puts("Coord 생성자");x=ax;y=ay; }
     Point(int ax, int ay, char ach) : Coord(ax,ay) { puts("Point 생성자");ch=ach; }
     Circle(int ax, int ay, char ach, int aRad) : Point(ax,ay,ach) { puts("Circle 생성자");Rad=aRad; }

Circle을 생성할 때  위와 같이 기반 클래스로 한 단계씩 올라가서 상속받은 멤버를 초기화하고 상속받은 멤버 초기화가 끝나면 자신의 멤버를 초기화 한다.

void main()
{
     puts("==== Point 생성전 ====");
     Point P(10,10,'@');
     puts("==== Circle 생성전 ====");
     Circle C(40,10,'*',8);
     P.Show();
     C.Show();
}
/*
==== Point 생성전 ====
Coord 생성자
Point 생성자
==== Circle 생성전 ====
Coord 생성자
Point 생성자
Circle 생성자*/

 

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

[C++] 포함, private 상속, public 상속  (0) 2022.01.05
[C++] 다중 상속과 virtual 클래스  (0) 2022.01.05
[C++] 복사 생성자  (0) 2022.01.04
[C++] 연산자 오버로딩  (0) 2022.01.04
[C++] 프렌드 friend  (0) 2022.01.04