9. 오버로딩(Overloading)이 궁금해!!
2021. 11. 24. 22:29ㆍc++/기초
오버로딩은 같은 이름을 가진 함수를 사용하는 것이다.
단 함수의 인자(argument)의 타입이나 개수가 달라야 한다.
오버로딩이란 말은 과부하를 주는 것이다. 하나의 이름을 가진 함수를 여러개를 쓴다면 과부하가 되겠쥬?
(근데 터지지는 않음.)
만일 인자의 타입과 일치하지 않으면 어떻게 될까?
#include <iostream>
void print(int x) { std::cout << "int : " << x << std::endl; }
void print(double x) { std::cout << "double : " << x << std::endl; }
int main() {
int a = 1;
char b = 'c';
double c = 3.2f;
print(a);
print(b);
print(c);
return 0;
}

a와 c는 자신과 타입이 같은 인자를 잘 찾은 것을 알 수 있다.
하지만 char는 해당하는 타입이 없는데도 int를 인자로 받는 함수로 실행이 되었다.
?? 여기서 이 룰을 알면 이 궁금증은 해결 된다.
일치하는 타입이 없는 경우엔 형변환이 진행된다.
정수형 자료, Enum는 int, 실수형 자료는 Double.
만일 이래도 없다?
그렇다면 실수형 자료는 정수형 타입으로 바뀌고, 정수형 타입은 실수형 타입으로 바뀐다.
그래도 일치하지 않으면 오류가 발생한다.

반응형
'c++ > 기초' 카테고리의 다른 글
| 11. 생성자 초기화 리스트(initializer list)가 궁금해. (0) | 2021.11.25 |
|---|---|
| 10. 소멸자와 복사 생성자가 궁금해. (0) | 2021.11.25 |
| 8. 클래스(Class)에 대해서 궁금해! (0) | 2021.11.24 |
| 7. new 와 delete(동적 배열)이 궁금해. (0) | 2021.11.24 |
| 6. 포인터, 참조자 (reference)가 궁금해 (0) | 2021.11.24 |