프로그래밍/C++
함수 오버로딩
우끼우끼몽키
2023. 10. 4. 21:29
함수 오버로딩이란
매개변수만 다른 동일한 함수명을 여러개 정의할 수 있는 기능이다.
C에서는 복수 함수명을 허용하지 않지만 C++은 함수 오버로딩을 지원한다.
매개변수의 자료형 및 개수가 달라야한다.
int Function(int a);
int Function(int a, int b);
int Function(double a, double b);
const 여부로 오버로딩이 가능하다. (단, 매개변수가 포인터 또는 참조형 이어야한다.)
void Function(char* a);
void Function(const char* a);
const 함수는 const 객체에서만 호출할 수 있다.
class MyClass
{
void Function(char* a)
{
}
void Function(char* a) const
{
}
}
void main()
{
const MyClass a;
MyClass b;
a.Function("string");
b.Function("string"); // const 함수가 호출된다.
}
반환형이 다른 것은 함수 오버로딩으로 취급되지 않으니 주의한다.
int Function(int a);
void Function(int a);
오버로딩이 불가능한 항목의 자세한 내용은 아래 Microsoft MSDN 링크를 참조한다.