Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- 스파르타코딩클럽
- https://eo-oe.tistory.com/
- https://vetenir.tistory.com/
- 이리5조
- https://ji-han.tistory.com/
- https://mynameiskgws.tistory.com/
- 태어난김에 보스까지
- https://hjmag1120.tistory.com/
Archives
- Today
- Total
info8995 님의 블로그
28일차(형변환과 순수 가상 함수) 본문
1. 형변환 (Type Casting)
C++에서 형변환은 데이터 타입을 변환하는 데 사용됩니다. 아래는 C++에서 제공하는 형변환의 종류와 사용법입니다.
1-1. C++ 형변환의 종류
- static_cast<>
- Built-In Type(float, int, double, bool, ....) 간의 형변환 때만 쓰자.
- 컴파일 타임에 "TypeCheck"라는 걸 한다. TypeCheck란, 형변환 해도되는지 검사하는 과정을 뜻함. Dog 자료형에서 Cup 자료형으로의 형변환은 안됨.
- 사용 예:


2.dynamic_cast<>
- 사용자 정의 자료형(Animal, Dog, Cat, ...) 간의 형변환 때만 쓰자.
- 컴파일 타임에 "TypeCheck"라는 걸 한다.
- 사용 예:


3.reinterpret_cast<>
- static_cast<>()는 이진수 패턴을 변경하지만, reinterpret_cast<>()는 이진수 패턴을 변경하지 않고 강제로 자료형을 변경해버린다.
- 즉, 데이터는 그대로인데, 다른 타입으로 해석하도록 강요하는 행위입니다.
- 사용 예:


4.const_cast<>
- const 속성을 제거.
(주의: 원래 const로 선언된 데이터는 수정하면 정의되지 않은 동작 발생)


2. 순수 가상 함수와 추상 클래스
- 순수 가상 함수는 구현이 없는 함수로, 파생 클래스에서 반드시 재정의해야 합니다.
- 추상 클래스는 순수 가상 함수가 하나 이상 포함된 클래스입니다.
예:


순수 가상 함수의 장점
- 다형성을 활용해 유연한 설계 가능.
- 부모 클래스에서 공통 인터페이스를 정의하여, 자식 클래스에서 특화된 동작을 구현하도록 강제.
오버라이딩은 기존에 정의된 멤버 함수의 동작을 파생 클래스에서 재정의하는 것을 말합니다.
오버라이딩 관련 글은 https://info8995.tistory.com/15에 작성해났으니 참고부탁드립니다!
정리
- 형변환은 올바른 타입 체크와 효율적인 메모리 관리에 필수적이며, 각각의 변환은 명확한 목적을 가지고 사용해야 함.
- 순수 가상 함수와 추상 클래스는 다형성을 극대화하고, 상속 구조에서 인터페이스와 구현을 분리하는 데 사용됨.
'TIL(Today I Learned) > C++' 카테고리의 다른 글
| 코딩 테스트 문제 분석 & 시간 복잡도 이해 (0) | 2025.02.10 |
|---|---|
| TIL: find, map, replace 사용법 (0) | 2025.01.29 |
| 27일차(코딩테스트 문제풀이) (0) | 2025.01.23 |
| 25일차(참조자 포인터) (0) | 2025.01.21 |
| 22일차(상수, 포인터) (0) | 2025.01.16 |