LANG/C++

[C++] 01-2. 함수 오버로딩(Function Overloading)

혀니리리 2023. 5. 9. 13:16
728x90

함수 오버로딩: 함수명이 같고 매개변수의 선언만 다를 경우 함수명이 같은 것을 허용

int MyFunc(int num)
{
	num++;
    return num;
}

int MyFunc(int a, int b)
{
	return a + b;
}

int main(void)
{
	MyFunc(20);
    MyFunc(30, 40);
    return 0;
} => 가능

C++에서는 함수 호출 시 전달되는 인자를 통해서 호출하고자 하는 함수의 구분 가능

C에서 안되는 이유: "MyFunc어딨어 ~!!!!! MyFunc 낸하!(찡찡)"

C++에서 되는 이유: "두 개의 int형 정수를 인자로 전달받을 수 있는 MyFunc라는 이름의 함수를 찾아야겠군"

 

오버로딩 되는 조건

매개변수의 자료형, 매개변수의 개수가 다르면 가능

int MyFunc(char c){...}

int MyFunc(int i){...}

int MyFunc(int n1, int n2){...} //가능

 

오버로딩 안되는 조건

void MyFunc(int n){...} => 반환형이 다른 경우는 함수를 구분하는 기준이 될 수 없음.

 

내가 생각하는 오버로딩의 장점: 같은 일을 하는 함수가 받는 매개변수만 다를 때 굳이 함수명을 달리 할 필요가 없어서 코드가 깔끔해질 듯!

728x90