변환 생성자랑 헷갈릴 수 있다. ( https://forward-movement.tistory.com/201 )
변환 연산자는 반대로 객체에서 일반 타입 값을 받을 수 있다.
변환 연산자는 operator 타입명(); 과 같은 형태로 선언 가능하다.
자세한 설명은 아래의 블로그님이 너무 잘 써주셔서 그 내용을 참고하면 될것 같다.
기억해야될 점은 변환 생성자랑 마찬가지로 의도하지 않는 문제가 발생할 소지가 있다는 점이다.
DistanceFunc() 함수는 파라미터로 int 를 받는데 Distance 객체 d가 operator int() 에 의해 의도치 않게 형변환 된것을 확인 할 수 있다.
그렇기 때문에 explicit 키워드를 사용해서 명시적 변환만 가능하도록 작성하는게 좋다.
https://psychoria.tistory.com/41https://psychoria.tistory.com/41
'Language & etc > C++' 카테고리의 다른 글
std::Move, perfect forwarding - ① (0) | 2022.06.19 |
---|---|
전방 선언 (Forward Declaration) #22.11.22일 복습 (0) | 2022.06.10 |
LValue, RValue , 이동 생성자 깊게 이해하기 (feat.Copy Elision ) (0) | 2022.05.04 |
변환 생성자 (feat. explicit, delete) (0) | 2022.04.17 |
const class ( 상수 클래스 ) (0) | 2022.04.17 |