본문 바로가기
프로그래밍/c++

c++ 19. 함수 오버로딩

by 지나팩 2024. 2. 23.

기본적으로 함수는 같은 이름으로 선언할 수 없습니다. 하지만 같은 기능을 하는 함수인데 연산과정이 다르다고 해서 다른 이름으로 쓰는 건 혼동을 줄 수 있기에 이럴 때 함수 오버로딩을 활용할 수 있습니다.

 

함수 오버로딩은 같은 이름을 가진 여러 함수를 정의할 수 있게 하는 기능입니다. 이러한 함수들은 매개변수의 타입, 개수 또는 순서가 서로 다르기 때문에 구별됩니다. 함수 오버로딩은 같은 작업을 다양한 타입의 인자나 다른 개수의 인자로 수행할 수 있게 하여, 코드의 가독성과 재사용성을 향상시킵니다.

함수 오버로딩의 규칙

  1. 다른 매개변수 목록: 오버로딩된 각 함수는 매개변수의 타입, 개수 또는 순서가 달라야 합니다.
  2. 반환 타입은 구분 요소가 아님: 오버로딩된 함수들은 반환 타입이 다를 수 있지만, 오로지 매개변수 목록만으로 함수를 구별합니다.
  3. 명확한 호출: 호출 시점에 컴파일러가 어떤 함수를 호출해야 할지 명확히 알 수 있어야 합니다.

간단한 예제를 통해 함수 오버로딩을 알아봅시다.

 

위 예에서 보듯 Add라는 이름으로 같은 기능을 하는 함수를 세 개 정의하고 있습니다. 매개변수의 갯수나 타입 그리고 타입의 순서가 다르다면 함수 오버로딩이 가능합니다. 

함수 호출 시 매개변수를 입력하려하면 위 이미지처럼 몇개의 함수가 오버로딩 되어있는지 확인할 수 있습니다.

 

함수 오버로딩은 아래와 같은 이점이 있습니다.

  • 유연성: 같은 기능을 다양한 타입이나 인자의 개수에 대해 제공할 수 있습니다.
  • 가독성: 함수의 이름을 변경하지 않고도 여러 버전의 함수를 제공할 수 있어, 프로그램의 가독성이 향상됩니다.
  • 재사용성: 비슷한 기능을 하는 함수를 여러 번 작성할 필요 없이, 다양한 상황에서 함수를 재사용할 수 있습니다.

 

함수 오버로딩은 C++의 객체 지향 프로그래밍의 중요한 특징 중 하나로, 프로그래머가 더 효율적이고 유지보수가 용이한 코드를 작성할 수 있도록 돕습니다.

'프로그래밍 > c++' 카테고리의 다른 글

c++ 21. 1차원 배열의 크기 찾는 법  (0) 2024.03.28
c++ 20. 배열 Array  (0) 2024.03.13
c++ 18. 함수 function  (0) 2024.02.22
c++ 17. 중첩 반복문  (0) 2024.02.19
c++ 16. 조건문 중첩  (0) 2024.02.02

댓글