31.1 함수 템플릿 31.1.1 타입만 다른 함수들 C++은 여러 가지 개발 방법을 지원하는 멀티 패러다임 언어라고 하는데 적어도 다음 세 가지 방법으로 개발 할 수 있다. 구조적 프로그래밍 C언어와 마찬가지로 함수 위주로 프로그램을 작성할 수 있다. 객체지향 프로그래밍 캡슐화, 추상화를 통해 현실 세계의 사물을 모델링할 수 있으며 상속과 다형성을 지원하기 위한 여러가지 언어적 장치를 제공한다. 일반화 프로그래밍 임의 타입에 대해 동작하는 함수나 클래스를 작성할 수 있다. 객체 지향보다 재사용성과 편의성이 더 우수하다. 일반화 프로그래밍은 주로 C++ 템플릿에 의해 지원되며 C++ 표준 라이브러리가 일반화의 좋은 예이다. 템플릿은 C++이 일반화를 위해 제공하는 가장 기본적인 문법이므로 템플릿에 대한 ..