묵시적(암시적) 형변환 (implicit conversion)
- 객체에 변환 생성자가 있다면, 형변환을 별도로 하지 않아도 입력이 된다
주의 어떠한 형태로 변환될지 애매한 상태일때는 명시적 형변환을 이용해준다 문법상 int, double 둘 다 가능할 때
ex) class Item { Item(int num) : num(num) { } } 형변환을 시켜줄 수 있는 생성자면 모두 변환 생성자다
Item i3 = 3; 3이 int값이지만, 형변환을 명시하지 않아도 상단의 생성자를 바탕으로 형변환을 시켜준다
명시적 형변환 (explicit conversion)
- 객체에 변환 생성자가 있어도, 형변환을 별도로 할 수 있다
ex) class Item { Item(int num) : num(num) { } }
Item i1 = Item(1); 원래 class에서 요구하는 형태의 객체 생성이다
Item i4 = (Item)4; 변환 생성자와 명시한 자료형을 바탕으로 형변환을 시켜줄 수 있다
형변환 오버로딩
- C언어에서는 형변환도 연산자다
- 형변환을 오버로딩하면 객체를 다른 자료형으로 변환이 가능하다
ex) operator int() const {
return num;
}
explicit operator double() const { explicit이 붙으면 명시적 형변환을 하지 않으면 형변환이 불가능하다
return num;
}
'Study > C C++' 카테고리의 다른 글
[두들낙서] 상속에서의 형변환 (0) | 2021.03.06 |
---|---|
[두들낙서] 상속 (0) | 2021.03.04 |
[두들낙서] 객체 복사 (0) | 2021.03.04 |
[두들낙서] 동적 할당 (0) | 2021.03.04 |
[두들낙서] 클래스와 객체 (0) | 2021.03.04 |