프로그래밍 언어/C & C++ 정리

Generic & Function Overload

뽀또치즈맛 2023. 2. 7. 19:36

제네릭 프로그래밍

제네릭 프로그래밍의 사전적 정의

제네릭 프로그래밍은 데이터 타입에 의존하지 않고,
(다양한 데이터형을 받을 수 있다는 말은 즉, 
= 다향성(polymorphism)을 뜻한다. 그 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로,
프로그램 언어의 각 요소 (상수, 변수, 식, 오브젝트, 함수, 메소드 등) 들이 
다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다.
반댓말은 단항성(monomorphism)으로, 프로그램 언어의 각 요소가 한가지 형태만 가지는 성질을 가리킨다.)

하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 
재사용성을 높일 수 있는 프로그래밍 방식이다.

제네릭 프로그래밍은 여러 가지 유용한 소프트웨어 컴포넌트들을 체계적으로 융합하는 방법을
연구하는 것으로 그 목적은 알고리즘, 데이터 구조, 메모리 할당 메커니즘,
그리고 여러 소프트웨어적인 장치들을 발전시켜 이들의 재사용성, 모듈화, 사용 편이성을 보다
높은 수준으로 끌어올리고자 하는 것이다.

geeksforgeeks.org에 따르면

Generic은 클래스, 메서드 및 인터페이스에 대한 매개 변수가 되는
어떠한 자료형 타입(상수, string, etc 사용자 정의 타입)을 가능하게 한다.
예를 들면, 클래스는 array, map, 기타 등등과 같이 제너릭에 사용될 수 있으며 이는 매우 능률적이다.
우리는 어떠한 타입이든 이에 사용할 수 있다.


제너릭 프로그래밍의 장점은 다음과 같은 것들이다.

1. 코드의 재활용성
2. 함수의 오버로딩 방지
3. 한번 쓴 것은 재차 여러 사례에 사용될 수 있다.

이러한 제너릭은 템플릿을 통해 C++ 언어에서 실행할 수 있다.
템플릿은 이해하기 쉽고 아직까지도 C++ 꽤나 강력한 툴이다.
이 간단한 방법은 나아가 다른 데이터 타입만 다른 경우에 대해서 우리가 같은 코드를 짜지 않도록 해준다.



함수의 오버로딩

함수의 오버로딩은 OOP의 특징이다 두개 혹은 더 많은 함수에 똑같은 이름을 사용할 수 있게 만들어 준다.
함수의 오버로딩이라고 부르는 함수의 다형은, 서로 다른 여러 개의 함수가 하나의 이름을 공유하는 것이다.
즉, 이름을 오버로딩 하는 것으로 형태는 제 각기 다 달라야 한다.

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

C++ 파일 입출력  (0) 2023.02.11
vector 와 array  (0) 2023.02.08
클래스  (0) 2023.02.05
20230130 그간 배운 변수와 함수 상수 등 정리  (1) 2023.02.05
C++ 생성자 (constructor)와 소멸자 (destructor)  (0) 2023.01.25