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

+ Recent posts