카테고리 없음

오버로딩이란?

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

함수의 이름정보만 활용하여 호출