C에서는 동일한 이름의 함수가 여러번 정의되는 것을 허용하지 않는다.
(자바는 함수 오버로딩이 있음)
int MyFunc(int num)
num++;
return num;
}
int MyFunc(int a, int b)
{
return a+b;
}
두 함수는 이름이 같지만 매개 변수의 수가 다르다
MyFunc(1) 과 MyFunc(2,3)
충분히 컴퓨터가 구분할 수 있을 것 같고, 구분 한다.
int MyFunc(int num)
num++;
return num;
}
void MyFunc(int num)
std::cout<<"숫자는 "<<num<<std::endl;
}
위 두 함수는 각각 문제가 없다
그럼 MyFunc(1)를 입력한다면 컴퓨터는 뭘 해야할까?
그냥 오류가 나온다
void MyFunc(int num)
std::cout<<"숫자는 "<<num<<std::endl;
}
void MyFunc(char c)
std::cout<<"문자는 "<<c<<std::endl;
}
이런 경우는 어떨까?
아하 MyFunc()에 숫자가 오면, 위의 함수를
문자가 오면, 아래 함수를 이용하면 되는구나!
그렇다 C++은 알잘딱이 아주 잘 되는 친구이다
정리하면
1. 매개변수의 수가 다를 경우
2. 매개변수의 타입이 다를 경우
동일한 이름의 함수를 여러개 만드는
'함수 오버로딩'이 가능하다
'개인공부 > C++' 카테고리의 다른 글
[C++] 매개변수의 기본값 (0) | 2023.08.09 |
---|---|
[C++] 입출력 방식 (0) | 2023.08.08 |