2015년 6월 17일 수요일

C/C++ , 좋은 프로그래밍 - 템플릿 - 1

클래스나 함수의 재사용률을 올리는 좋은 방법이 있을까? 뭐, 개발자마다 수 많은 의견이 나올 것이다. 그리고 그 수 많은 의견에서 템플릿 반드시 공통으로 언급될 것이다.

템플릿은 그 목적 자체가 재사용을 위해서 태어난 문법이나 다름 없다. 더군다나 템플릿 자체의 문법은 꽤 간단하다. 하지만 꽤 간단한 몇 가지 기능의 조합으로 아주 큰 효과를 발휘한다. 더군다나 C++11에 이르러 Variadic template 이라는 문법이 추가 되었다.

이제 기본적인 템플릿의 사용법부터 시작하여 본격적인 활용까지 이야기 해보고자 한다.

우선 템플릿 이야기를 하려면 먼저 알아야할 몇가지 문법을 언급하겠다.
가장 기본적으로 펑크터를 알아야 한다. 많은 사람이 알고 있겠지만 간단하게 이야기 해보고 시작하자.

class CFunctor
{
void operator()(int param){}
};

CFunctor functor;
functor(3);

기본적인 문법 구조는 위와 같다. 멤버 함수로 operator()() 함수를 정의하면 객체의 인스턴스를 함수처럼 호출 할 수 있다.

두번째로 함수 오버 로딩에 의한 자동 호출이다.

void func(int v){}
void func(double d){}

func(2)
func(2.0)

위의 예시처럼 func(2)와 func(2.0)은 각기 다른 함수가 호출된다. 이런 구조는 일반 함수 뿐만 아니라, 멤버 함수에도 적용된다.

이상으로 몇가지 기본적인 이야기는 마무리하고 본격적인 템플릿 이야기를 하자.


댓글 없음: