[STL] 제네릭(generic) 기초 정리

프로그래밍/C/C++ 2014. 2. 9. 03:24

 제네릭이란 무엇인가?

 네이버에서 Generic 이라는 단어를 검색하면

 [문법] 총칭적인

 the generic singular 총칭 단수 <보기 : The cow is an animal>

이라고 검색됩니다. 해석하면 "암소는 동물이다"  소는 분명히 고양이나 개와는 다르지만, "동물"이라는 것으로

총칭할수 있습니다. 그렇다면 왜 총칭하는 것일까요? 어떤 프로그램을 만든다고 할때 어떤 기능이 되야 하는지 고민한뒤

클래스, 맴버함수, 맴버변수등을 작성합니다. 여기서 사용하는 변수의 타입을 총칭화 하면 장점이 있습니다.

1. 템플릿을 이용하면 총칭화된 타입을 사용하는 클래스와 함수를 만들수 있다.

2. 템플릿을 사용하면 타입에 제약을 받지 않은 로직을 기술할수 있다.

그리고 제네릭 프로그래밍을 하기 위해서는 템플릿이 꼭 필요합니다. 그런데 STL은 무엇으로 만들어 졌을까요?

템플릿으로 만들어 졌습니다. STL은 제네릭 프로그램으로 만들어진 가장 대표적인 예중 하나입니다.

두개의 function함수가 있지만, 타입에 따라 다른 함수가 호출됨을 확인할수 있습니다.

첫번째 function함수는 호출1을 출력하고, 두번째 function함수는 호출2를 출력합니다. 

   

         

 

▶ 제네릭을 사용해 펙토리얼 연산

        

 

▶ 제네릭을 사용한 이진수 십진수 변환