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

zeho·2023년 1월 11일
0

C++

목록 보기
1/1
post-thumbnail

C++은 함수 호출 시 ‘함수의 이름’과 ‘전달되는 인자의 정보’를 동시에 참조하여 호출할 함수를 결정한다. 따라서 매개변수의 선언이 다르다면 동일한 이름의 함수도 정의 가능하다. 그리고 이러한 형태의 함수 정의를 가리켜 ‘함수 오버로딩(Function Overloading)’이라 한다.


> 예시 코드

#include <iostream>

using namespace std;

int Func(int num) {
	return num;
}

int Func(int num1, int num2) {
	return num1 + num2;
}

int main(void) {
	cout << Func(10) << '\n'; // 출력값: 10
	cout << Func(20, 30) << '\n'; // 출력값: 50
	cout << Func(40, 50, 60) << '\n'; // 에러 발생
	return 0;
}

> ⭕오버로딩이 성립하는 경우⭕

  1. 매개변수의 자료형이 다를 때
int Func(int num) { ... }
int Func(char c) { ... }
  1. 매개변수의 수가 다를 때
int Func(int num) { ... }
int Func(int num1, int num2) { ... }

> ❌오버로딩이 성립하지 않는 경우❌

  1. 반환형이 다를 때
int Func(int num) { ... }
void Func(int num) { ... }

0개의 댓글