728x90
반응형
함수 중복
동일한 이름의 함수가 공존하는 것이다.
function overloading 이라고도 한다.
함수 중복 성공 조건
중복된 함수들의 이름이 동일해야한다.
중복된 함수들의 매개 변수 타입이 다르거나 개수가 달라야한다.
리턴타입은 함수 중복과 무관하다.
오버로딩 예시
#include <iostream>
#include <string>
using namespace std;
int big(int a, int b) {
if (a > b) {
return a;
}
else {
return b;
}
}
int big(int a[], int size) {
int res = a[0];
for (int i = 1; i < size; i++) {
if (res < a[i]) {
res = a[i];
}
return res;
}
}
int main() {
int array[5] = { 1,9,-2,8,6 };
cout << big(2, 3) << endl;
cout << big(array, 5) << endl;
return 0;
}
디폴트 매개 변수 (Default Parameter)
매개변수에 값이 넘어오지 않는 경우, 디폴트 값을 받도록 선언된 매개변수이다.
매개변수=디폴토값 형태로 선언한다.
디폴트 매개 변수에 관한 제약조건
디폴트 개개변수는 보통 매개변수 앞에 선언될 수 없다.
컴파일 오류 사례
에러 : void calc(int a=0, int b, int c);
->
정상 컴파일 : void calc(int b, int c, int a=0);
함수 중복의 모호성
함수 중복이 모호하여 컴파일러가 이를 판단하지 못하는 경우가 발생할 수 있다.
- 형 변환으로 인한 함수 중복의 모호성
- 참조 매개 변수로 인한 함수 중복의 모호성
- 디폴트 매개변수로 인한 함수 중복의 모호성
728x90
반응형
'Archive > Develop' 카테고리의 다른 글
[ C++ ] 프렌드함수 || 연산자 중복 || 프렌드함수 예제, 연산자 중복 예제 (0) | 2021.05.11 |
---|---|
[ Oracle ] 프로시저와 sql*plus 예제 (프로시저 호출하는 방법) (0) | 2021.05.10 |
[ Oracle ] Oracle PL/SQL 화면출력 & 간단 예제 (0) | 2021.05.03 |
[ Django ]ORM ( Object-Relational Mapping ) 이란 무엇인가 (0) | 2021.04.24 |
[ GitHub ] Build Docker Image with Private Repo (0) | 2021.04.24 |