메서드 오버로딩
class X
{
public:
void Print(int score);
void Print(const char * name);
void Print(float gpa, const char *name);
};
- 메서드 오버로딩은 같은 이름의 메서드에 대해 다양한 매개변수를 가질 수 있도록 하는 기능이다.
- 불러오는 매개변수에 따라 어떤 메서드가 호출될지 결정된다.
함수 오버로딩
- 함수 오버로딩은 같은 이름의 함수에 대해 다양한 매개변수를 가질 수 있도록 하는 기능이다.
- 매개변수 목록을 제외하고는 동일한 이름의 함수이며, 반환형이 다르더라도 상관없다.
- 위의 코드에서 int Print(int score)는 오류가 발생한다.
- 함수 오버로딩은 매개변수의 타입, 순서, 개수를 고려하여 매칭을 수행하는데, 반환형만 다른 경우에는 매칭이 되지 않는다.
함수 오버로딩 매칭은 다음과 같이 이루어진다.
- 매칭되는 함수를 하나 찾음 → OK
- 매칭되는 함수를 찾을 수 없음 → 컴파일 에러
- 매칭되는 함수를 여러 개 찾음 → 컴파일 에러
-> 모호한 호출은 컴파일 에러를 발생시킵니다.
더 자세히 공부하고자 한다면 Function Overload Resolution을 공부하면 좋다.
-> 컴파일러 설계 부분을 다룬다면 공부하는 것이 좋다.
'Language > C++' 카테고리의 다른 글
[C++] 16.Unmanaged Programming: Friend 키워드 (0) | 2024.01.29 |
---|---|
[C++] 15.Unmanaged Programming: 연산자 오버로딩 (0) | 2024.01.25 |
[C++] 13.Unmanaged Programming: 복사 생성자 (0) | 2024.01.25 |
[C++] 12.Unmanaged Programming: 구조체 VS 클래스 (0) | 2024.01.25 |
[C++] 11.Unmanaged Programming: Const flag (0) | 2024.01.25 |