함수의오버로딩
함수호출 시 전달되는 인자를 통해서 호출하고자 하는 함수의 구분이 가능하기 때문에 매개변수의 선언형태가 다르다면, 동일한 이름의 함수정의를 허용할 수 있다.
함수의 오버로딩을 설명하는 예제
#include <iostream>
void MyFunc(void)
{
std::cout<<"MyFunc(void) called"<<std::endl;
}
void MyFunc(char c)
{
std::cout<<"MyFunc(char c) called"<<std::endl;
}
void MyFunc(int a, int b)
{
std::cout<<"MyFunc(int a, int b) called"<<std::endl;
}
int main(void){
MyFunc();
MyFunc('A');
MyFunc(12,13);
return 0;
}
결과
MyFunc(void) called
MyFunc(char c) called
MyFunc(int a, int b) called
위의 코드에 따르면 메인함수에서 똑같은 MyFunc 함수가 3개가 있지만 선언한 매개변수의 형태가 다르기 때문에 각각 구분하여 호출 시킨 것을 확인할 수 있다.
다음과 같은 경우 처럼 인자의 개수를 통하여도 호출할 함수의 구분이 가능하다.
int Myfunc(int n) {...}
int Myfunc(int n1, int n2) {...}
함수의 오버로딩이 가능하려면 "매개변수의 자료형 또는 개수가 달라야 한다."
'c++' 카테고리의 다른 글
[C++]동적 메모리 할당 및 반환(new, delete ) (0) | 2023.01.30 |
---|---|
[C++]반환형이 참조형(Reference Type)인 경우 (0) | 2023.01.29 |
[C++]Call-by-value & Call-by-reference (참조자와 함수) (0) | 2023.01.26 |
[C++]참조자(Reference)의 이해 (0) | 2023.01.26 |
[C++]자료형 bool (2) | 2023.01.23 |