fullstack

[C++] 함수 오버로딩 (Function Overloading)

Language/C++

기존 C 컴파일러에서는 함수의 이름으로만 함수를 찾기 때문에 동일한 이름의 함수 정의는 불가능 했다.

하지만 C++ 컴파일러에서는 [함수의 이름 + 매개 변수의 정보]로 호출하고자 하는 함수를 찾기 때문에 함수의 이름이 같아도 매개변수의 타입이나 개수가 다르다면 함수명 중복을 허용한다.

이를 함수 오버로딩(Function Overloading) 이라 한다.

즉 함수 오버로딩이란 같은 이름의 함수를 매개변수의 타입이나 개수를 다르게 하여 여러개 정의하는 것이다.


다음은 함수 오버로딩의 예이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
void func()
{
    cout << " function(void) " << endl;
}
 
void func(int a, int b)
{
    cout << " function(int a, int b) " << endl;
}
 
void func(char c)
{
    cout << " function(char c) " << endl;
}



위와 같이 같은 이름의 함수를 여러개 정의 할 수 있다.

주의할것은 함수의 이름과 매개 변수의 정보가 같고 리턴타입만 다른 함수는 오버로딩되지 않는다.


'Language > C++' 카테고리의 다른 글

[C++] Reference  (0) 2015.11.29
[C++] namespace  (0) 2015.11.28
[C++] 인라인 함수 (Inline Function)  (0) 2015.11.28
[C++] 디폴트 매개 변수 (Default Parameter)  (0) 2015.11.28
[C++] for문 두줄로 구구단 출력하기  (0) 2015.11.09