생성자 다중정의
- 생성자도 함수이므로 다중정의가 가능하다.
- 제작자는 동일한 멤버를 초기화하는 코드를 여러번 기술해야하는 번거로움이 있다. 이 번거로움을 생성자 위임으로 해결한다.
생성자 위임
- C++11 표준부터 지원된다.
- 생성자 초기화 목록에서 다른 생성자를 추가로 부를 수 있다.
- 같은 일을 하는 코드가 여러 번 반복해서 나타날 필요가 없어졌다.
class CMyPoint
{
public:
CMyPoint(int x)
{
if(x>100) //x값이 100이 넘는지 검사하고 넘으면 100으로 맞춘다.
x = 100;
m_x = 100;
}
CMyPoint(int x, int y)
:CMyPoint(x) //x값을 검사하는 코드가 이미 존재하므로 재사용한다.
//생성자초기화목록에서 다른 생성자를 호출할 수 있다.
{
if(y>200) //y값이 200이 넘는지 검사하고 넘으면 200으로 맞춘다.
y = 200;
m_y = 200;
}
private:
int m_x = 0;
int m_y = 0;
};
int main(){
CMyPoint ptBegin(110); //매개변수가 하나인 생성자만 호출
CMyPoint ptEnt(50,250); //두 생성자 모두 호출
}
'◼️C++' 카테고리의 다른 글
[C++] 메서드, this 포인터 (0) | 2023.09.17 |
---|---|
[C++] 명시적 디폴트 생성자 (0) | 2023.09.17 |
[C++] 참조형식 멤버변수 초기화 (생성자초기화목록 이용) (0) | 2023.09.17 |
[C++] 동적 객체의 생성과 소멸 (0) | 2023.09.17 |
[C++] 생성자와 소멸자 (0) | 2023.09.17 |