C에서는 동일한 이름의 다른 내용의 함수를 정의할 수 없다. 그러나 C++에서는 매개변수의 선언만 다르게 해주면 같은 이름의 함수를 정의 할 수 있다. C에서는 호출할 함수를 찾을 때 함수의 이름만을 이용하여 찾지만, C++에서는 호출할 함수를 찾을 때 함수의 이름과 매개변수 선언의 두가지 정보를 동시에 이용하여 찾기 때문이다. 함수 오버로딩의 예시는 다음과 같다.
#include <iostream>
void MyFunc(void)
{
std::cout << "MyFunc(void) called" << std::endl;
}
void MyFunc(char c)
{
std::cout << "MyFunc(char c) called" << std::endl;
}
void MyFunc(int a, int b)
{
std::cout << "MyFunc(int a, int b) called" << std::endl;
}
int main(void)
{
MyFunc();
MyFunc('A');
MyFunc(12, 13);
return 0;
}
'Language > C, C++' 카테고리의 다른 글
[C++] new, delete (0) | 2021.08.24 |
---|---|
[C++] Reference(참조자) (0) | 2021.08.21 |
[C++] 입출력 (0) | 2021.08.21 |
[Project H4C] C언어 코딩도장(6) (0) | 2021.03.02 |
[C] 문자 단위 입출력 함수 (0) | 2021.01.15 |