-
C++ - 함수 오버로딩에 대한 이해 (Function Overloading)Knowledge/Programing 2020. 7. 13. 00:20
안녕하세요. 현재 열심히 C++을 공부하고 있는 필자이다.
(갑자기 분위기 근황토크)이번 글에서는 객체지향 언어의 특징이기도한 함수 오버로딩에 대해서 써보려고 한다.
절차지향 언어인 C에서는 다음과 같은 코드는 오류가 발생한다.
#include <stdio.h> int Func(int num){ printf("%d\n", num); return num; } int Func(int a, int b){ return a+b; } int main(void){ int tmp; tmp = Func(30); return 0; }
이유는 함수의 이름이 "Func"으로 동일하기 때문이다.
하지만 C++의 경우에는 어떨까?
무리없이 실행이 가능하다. 그 이유가 바로 함수의 오버로딩덕분이다.
같은 이름을 쓰더라도 받는 인자를 따라 구분이 가능하기 때문에 이름이 중복되어도 다른 함수로 인식 할 수 있는 것이다.
그렇다면 이런 기능을 왜 쓰는 걸까?
같은 기능을 하지만 인자를 다양하게 받고 싶다면 이런 기능을 이용하면 좋다.
입력받는 인자의 자료형에 따라 다른 기능을 해야한다면 이런 오버로딩을 이용하게 된다.
입력받은 자료형을 구별하며 자료형의 이름을 출력해주는 함수를 구현한다면 이런 식이 될 것이다.
이런 경우에는 이렇게 함수의 이름이 같은게 보기 편할 것이다.
함수 오버로딩의 쓰임새에 대해 간단히 살펴보았다.
'Knowledge > Programing' 카테고리의 다른 글
절차지향 언어와 객체지향 언어 (0) 2020.06.19