본문 바로가기
IT 이야기/C++

C++ 함수 오버로딩 이란? [Function Overloading]

by youngmap 2021. 9. 1.
반응형

C언어와 다르게 C++에서는 함수 오버로딩 이라는 개념이 있습니다.

 

C언어는 동일한 이름의 함수가 정의되지 않습니다.

C++에서는 동일한 이름의 함수라도 매개변수가 다르면 정의해서 사용할 수 있습니다.

이를 "함수 오버로딩" 이라고 합니다.

 

아래와 같이 a라는 동일한 함수를 4개를 선언했습니다.

매개변수가 각각 다르기 때문에 함수를 호출할 때 구분이 가능합니다.

#include <iostream>
using namespace std;

void a(void){
    cout << "매개변수가 void" << endl;
}

void a(int a){
    cout << "매개변수가 int 1개" << endl;
}

void a(int a, int b){
    cout << "매개변수가 int 2개" << endl;
}

void a(char a){
    cout << "매개변수가 char 1개" << endl;
}

int main()
{
    a();
    a(1);
    a(1,2);
    a('a');
    return 0;
}

 

아래는 실행 결과입니다.

함수 오버로딩은 매우 자연스럽고 합리적인 개념이라는 생각이드네요.

반응형