본문 바로가기
정상을향해/Languages

멤버 이니셜라이저를 이용한 멤버 초기화

by 사이테일 2013. 11. 11.
다음은 생성자가 추가된 Rectangle 클래스의 선언이다.

 

< Rectangle.h >

 

 

생성자는 직사각형을 이루는 두 점의 정보를 직접 전달할 수 있게 정의하였다.

 

이 정보를 통해서 두 개의 Point 객체가 초기화되어야 한다.

 

 

< Rectangle.cpp >

 

 

위 코드는 Rectangle 클래스의 생성자 정의이다.

 

이 중 다음의 내용이 '멤버 이니셜라이저(Member Initializer)'이다.

 

:upLeft(x1, y1), lowRight(x2, y2)

 

이 것의 의미는 다음과 같다.

 

객체 upLeft의 생성과정에서 x1과 y1을 인자로 전달받는 생성자를 호출하라.

 

객체 lowRight의 생성과정에서 x2와 y2를 인자로 전달받는 생성자를 호출하라.

 

이렇듯 멤버 이니셜라이저는 멤버변수로 선언된 객체의 생성자 호출에 활용된다.

 

그래서 위와 같이 멤버 이니셜라이저를 통해 Rectangle 객체를 생성하는 과정에서

 

Point 클래스의 생성자를 통해서 Point 객체를 초기화할 수 있는 것이다.

 

다음은 Rectangle 클래스와 관련해서 완성된(나머지) 예제 소스코드이다.

 

< Point.h >

 

 

< Point.cpp >

 

< RectangleConstructor.cpp >

 

 

출처 : 열혈 C++ 프로그래밍 (윤성우 저)

 


'정상을향해 > Languages' 카테고리의 다른 글

파이썬(Python)_변수 / 표현식 / 문장  (2) 2019.02.16
상속 (Inheritance)  (0) 2013.11.11
얕은복사와 깊은복사  (0) 2013.11.11
C++에서의 파일분할  (7) 2013.11.10
참조자(Reference)와 함수  (0) 2013.11.10
[C] 포인터 : 배열명  (0) 2011.04.16