변환 생성자랑 헷갈릴 수 있다.  ( https://forward-movement.tistory.com/201 )

 

 

변환 연산자는 반대로 객체에서 일반 타입 값을 받을 수 있다.

 

변환 연산자는 operator 타입명(); 과 같은 형태로 선언 가능하다.

 

자세한 설명은 아래의 블로그님이 너무 잘 써주셔서 그 내용을 참고하면 될것 같다.

 

기억해야될 점은 변환 생성자랑 마찬가지로 의도하지 않는 문제가 발생할 소지가 있다는 점이다.

 

 

DistanceFunc() 함수는 파라미터로 int 를 받는데 Distance 객체 d가 operator int() 에 의해 의도치 않게 형변환 된것을 확인 할 수 있다.

 

그렇기 때문에 explicit 키워드를 사용해서 명시적 변환만 가능하도록 작성하는게 좋다.

 

 

 

 

 


https://psychoria.tistory.com/41https://psychoria.tistory.com/41

 

C++ 변환 연산자(Conversion operator)

C++ 클래스에는 변환 연산자라는 특수한 형태의 함수(메소드)를 정의할 수 있습니다. 이전에 포스팅한 변환 생성자와 반대되는 개념입니다. 변환 생성자에 대한 설명은 아래 링크에서 확인 가능

psychoria.tistory.com

 

+ Recent posts