Nagie's DevStory
[CPP] 29. 변환 생성자 (Conversion Constructor) 본문
728x90
변환 생성자는 다른 데이터 형식의 값을 받아들여 해당 데이터 형식의 객체로 변환하도록 클래스를 정의하는 생성자다.
다른 데이터 형식에서 클래스 객체를 만들 수 있도록 하는 방법으로 사용된다.
요약하면 다음과 같다.
1. 다른 데이터 형식에서 객체를 만들 필요가 있을 때.
2. 형 변환 연산이 필요한 경우.
변환 생성자는 다음과 같이 정의할 수 있다.
class MyClass {
public:
MyClass(int x) {
// 변환 생성자의 구현
}
};
예를 들어 'MyClass'의 변환 생성자를 사용하면 다음과 같이 정수 인스턴스를 가지고 'MyClass' 객체를 만들 수 있게 된다.
int number = 42;
MyClass myObject = number; // 변환 생성자 호출
다만 이 과정이 대체로 사용자가 의도한 대로 흘러가지는 않기 때문에 될 수 있다면
암묵적인 호출을 문법적으로 막아두는 걸 권장한다.
다음과 같이 explicit 키워드를 사용하면 암묵적인 호출을 막을 수 있다.
class MyClass {
public:
explicit MyClass(int x) {
// 변환 생성자의 구현
}
};
728x90
Comments