관리 메뉴

FU11M00N

[ C++ ] 함수중복 본문

Programming/C++

[ C++ ] 함수중복

호IT 2021. 6. 1. 09:21

 

 


 


- 함수 중복

 

동일한 이름의 함수가 공존하는 것이다.

function overloading 이라고도 한다.

 

 

- 함수 중복 성공 조건

 

중복된 함수들의 이름이 동일해야한다.

중복된 함수들의 매개 변수 타입이 다르거나 개수가 달라야한다.

리턴타입은 함수 중복과 무관하다.

 

 

 

- 오버로딩 예시

 

 

#include <iostream>
#include <string>

using namespace std;

int big(int a, int b) {
    if (a > b) {
        return a;
    }
    else {
        return b;
    }
}
int big(int a[], int size) {
    int res = a[0];
    for (int i = 1; i < size; i++) {
        if (res < a[i]) {
            res = a[i];
        }
        return res;
    }
}
int main() {
    int array[5] = { 1,9,-2,8,6 };
    cout << big(2, 3) << endl;
    cout << big(array, 5) << endl;
    return 0;
}

 

 

- 디폴트 매개 변수 (Default Parameter)

 

매개변수에 값이 넘어오지 않는 경우, 디폴트 값을 받도록 선언된 매개변수이다.

 

매개변수=디폴토값 형태로 선언한다.

 

 

- 디폴트 매개 변수에 관한 제약조건

 

디폴트 개개변수는 보통 매개변수 앞에 선언될 수 없다.

 

- 컴파일 오류 사례

 

에러 : void calc(int a=0, int b, int c);

 

->

 

정상 컴파일 : void calc(int b, int c, int a=0);

 

 

 

- 함수 중복의 모호성

 

함수 중복이 모호하여 컴파일러가 이를 판단하지 못하는 경우가 발생할 수 있다.

 

 

  • 형 변환으로 인한 함수 중복의 모호성
  • 참조 매개 변수로 인한 함수 중복의 모호성
  • 디폴트 매개변수로 인한 함수 중복의 모호성
Comments