C++ 오버로딩
다형성
하나의 표현으로 여러개의 유형을 나타내는 방법으로 객체 지향 프로그래밍 에서는 다양한 유형 의 엔터티(기능)에 대한 단일 인터페이스를 제공하는 것이다. 이 개념은 유기체나 종이 다양한 형태나 단계를 가질 수 있다는 생물학의 원리에서 빌려온 것이라고 한다[1]
출처 위키백과 ↩︎
함수 오버로딩
다형성을 구현하는 방법중 하나로,
같은 이름을 사용하는 함수를 여러개 설정해서 마치 하나의 함수로 여러 기능을 사용하는 효과를 줄 수 있는것
당연하게 하나의 의문이 생긴다. 함수 호출은 이름으로 하는데 이름이 같다면 어떻게 구분하는가?
매개변수로 한다. 매개변수 개수부터, 자료형을 다르게 설정하면 컴파일러가 알맞게 설정해준다.
여기서 add함수는 3개다. 정수형이 들어온 함수, 실수형이 들어온 함수, 매개변수가 3개인 함수.
함수 오버로딩을 지원하지 않는다면 add_int, add_double, add_3으로 나누어 사용했어야 하는걸 합쳐 사용할 수 있게 된다.
사용하는 이유
- 기본값 지정
함수에 매개변수가 들어오지 않았을때 기본값을 지정하는 경우 유용하게 사용 할 수 있다. - 각자 다른 자료형에 대한 대응
위 예시처럼 입력받은 자료형에 따라 처리하는 방법이 다른경우 유용하게 사용할 수 있다. - Templete(Generic)
나중에 포스팅할 템플릿(java나 C#에서는 제네릭)문법에서 사용한다.