날마다 새롭게 또 날마다 새롭게

클래스 생성자의 이니셜라이저 본문

프로그래밍/C / C++

클래스 생성자의 이니셜라이저

아무유 2012. 9. 2. 16:52

이니셜라이저의 역할은 클래스 생성 시, 클래스 내의 멤버변수를 초기화하는 것이다.

이니셜라이저는 다음과 같은 형태로 정의한다.

class Rectangle

{

Point upLeft;

Point lowRight;

public:

Rectangle(int x1, int y1,int x2, int y2);

}

Rectangle::Rectangle(int x1, int y1,int x2, int y2)

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

{

}

이 중에서 :upLeft(x1,y1),lowRight(x2,y2) 가 이니셜라이저이다.

생성자 함수 내에서도 멤버변수를 초기화 할 수 있지만, 

클래스 내부의 Point 객체는 아래와 같이 함수 내부에서 초기화할 수 없다.

{    

upLeft(x1,y1);

}

하지만 이니셜라이저를 이용하면 선언과 동시에 초기화가 이루어지는 형태로 바이너리 코드가 생성되기 때문에 클래스 내부의 객체 초기화가 가능하다. 

클래스 내부의 객체 초기화는 이니셜라이저를 사용해야 가능하다는 것을 기억하자.


이외에도, 이니셜라이저를 사용 시 얻을 수 있는 이점은 다음과 같다.

초기화의 대상을 명확히 인식할 수 있다.

성능에 약간의 이점이 있다.



Comments