프로그래밍/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 링크를 참조한다.

Function Overloading | Microsoft Learn

'프로그래밍 > C++' 카테고리의 다른 글

Class 와 struct 차이  (0) 2023.10.22
참조자  (0) 2023.10.22
C++ 파일분할  (0) 2023.10.08
Const 정리  (0) 2023.10.08
디폴트 매개변수  (0) 2023.10.07