함수 오버로딩
- 동일한 이름의 함수를 여러 개 정의하는 것.
- C++에서는 동일한 이름의 함수를 여러개 정의할 수 있다. 함수 이름과 매개변수 타입 정보를 함께 사용하여 구분하기 때문.
- 함수 이름 구분을 위해 내부적으로 고유한 이름을 부여하는 것을 네임맹글링(Name Mangling) 이라고 한다.
- 명확히 구분되어야 한다 (ex: 매개변수 타입이 다르거나, 매개변수의 개수가 다른 경우)
- 오버로딩이 되지 않는 경우
- 타입 변환이 가능한 매개변수로 인해 두 개 이상의 오버 로딩된 함수가 호출 후보가 되는 경우
- 디폴트 매개변수로 인해 함수 호출 형태가 중복되는 경우
- 매개변수의 타입만 포인터와 배열로 다른 경우 매개변수의 타입만 포인터와 배열로 다른 경우
- 함수 오버로딩의 순서
- 정확한 배개변수 타입 일치 -> 타입 승격 변환 -> 표준 타입 변환 -> 사용자 정의 타입 변환
템플릿
- 타입에 관계 없이 일반화된 코드를 작성하기 위한 문법.
- template <typename T>
- 어떤 타입이 올지 모르겠으나, 그 타입을 T 라고 부르겠다는 의미. 이후 일반화하려는 타입 자리에 실제 타입 대신 T를 사용하면 된다.
템플릿 클래스
함수뿐만이 아니라, 클래스도 템플릿을 사용해 일반화 할 수 있다.
'C++ 공부' 카테고리의 다른 글
| C++언어 기초 - 8. SOLID 원칙 (2) | 2025.09.01 |
|---|---|
| C++언어 기초 - 7. STL의 개념 (1) | 2025.08.26 |
| C++언어 기초 - 5. 자원 관리하기 (6) | 2025.08.26 |
| 기본적인 Class 생성해보기 (0) | 2025.08.21 |
| C++언어 기초 - 4. 객체지향 프로그래밍 (0) | 2025.08.21 |