구글링해보니 C언어로 순수 오버로딩하는 건 어렵다고 나온다. 그러므로 C++ 에서 사용된다고 이해하자.
C++ Overloading 이란 함수 이름이 같은 함수를 여러개 만들 때, 매개 변수의 정보를 다르게 하여 공통 기능의 함수를 하나로 묶어주는게 오버로딩이다.
오버로딩의 조건은
ㅇ 매개변수의 개수가 다르게 한 경우
선언부에서 매개변수의 초기값을 미리 설정할 수 있다.
단, 초기화는 매개변수의 오른쪽부터 순서대로 해야 유효하다.
ㅇ 매게변수의 타입을 다르게 한 경우
※ 반환형의 차이는 함수 오버로딩의 조건에 포함되지 않는다. 모호성이 발생하기 때문이다.
void ABC(int a, int b){ ... }
int ABC(int a, int b){ ... }
#include <iostream> |
구글 이미지를 검색하면 이런 이미지를 찾을 수 있다.
함수 오버로딩과 함수 오버라이딩의 개념 차이를 그림으로 이해할 수 있다.
함수 오버라이딩은 객체간 상속 관계에서 사용되는 문법으로 함수의 이름, 매개변수, 반환 타입이 모두 일치해야 한다.
부모 클래스의 함수를 자식 클래스에서 재정의하는 것이다.
'C++ > C++ 문법' 카테고리의 다른 글
C++ 클래스 이해 (0) | 2019.11.23 |
---|---|
C++ namespace(네임스페이스) (0) | 2019.11.22 |
C++ 참조 변수(reference) (0) | 2019.11.22 |
C++ 입력(cin) 과 출력(cout) (0) | 2019.11.21 |
C언어 중첩 구조체(Nested structure) (0) | 2019.11.20 |