카테고리 없음
오버로딩이란?
mutex
2025. 4. 22. 01:05
안녕하세요 오늘은 오버로딩과 오버라이딩에 대한 설명을 드리겠습니다.
오버로딩(Overloading) ?
오버로딩이란 함수이름은 같지만 매개변수가 다른 Function을 중복선언하는것을 뜻한다.
예를 들어서 코드를 보겠습니다.
int plusinteger(int x, int y)
{
return x + y;
}
double plus_double(double x, double y)
{
return x + y;
}
위의 두개의 함수는 매개변수로 받은 값을 더해서 return 해주는 함수입니다.
매개변수의 자료형이 다르기 때문에 다른 함수의 이름으로 선언했지만
오버로딩을 사용한다면 자료형이 다르더라도 제공한 자료형에 맞게 호출 할 수 있습니다.
예를 들어 보겠습니다.
int addvalue(int x, int y)
{
return x + y;
}
double addvalue(double x, double y)
{
return x + y;
}
void calc()
{
int n_value[2] = {0,};
double d_value[2] = {0,};
int n_result = 0;
double d_result = 0;
n_result = addvalue(n_value[0], n_value[1]);
d_result = addvalue(d_value[0], d_value[1]);
}
라고 한다면 네이밍 충돌을 일으킬 것 같지만 일어나지 않는다.
이것이 오버로딩이다.
어떻게 C언어에서는 컴파일 오류가 나지만 C++에서는 컴파일 오류가 없는 것 일까?
그 이유는 C와 C++의 함수호출 방법이 다르기 때문입니다.
C++
함수이름과 매개변수의 정보 두가지의 정보를 동시에 활용하여 호출
C
함수의 이름정보만 활용하여 호출