Nagie's DevStory

[CPP] 29. 변환 생성자 (Conversion Constructor) 본문

Programming/C++

[CPP] 29. 변환 생성자 (Conversion Constructor)

Nagie 2023. 10. 22. 17:09
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