Skip to content

C 템플릿에 대하여

Lee Sun-Hyoup edited this page Feb 27, 2014 · 2 revisions
  • 최초 작성자: 이선협
  • 최초 작성 날짜: 2014. 02. 28
  • 수정한 사람:
  • 수정 사유:
  • 수정 횟수:

보통 자료형이 다를 경우 코드의 재 사용성은 물건너 가버린다.
결국 자료형 마다 코드를 작성해줘야 하는데 그렇게 될 경우 인지해야 할 코드 수도 늘어날 뿐더러 더러운 코드도 증가할 가능성이 높다.
템플릿은 자료형이 다른 경우에도 최소한의 코드로 재사용이 가능하도록 해주는 문법이다.

클래스 템플릿 제작

#include <stdio.h>

template <class T>
class TestClass
{
private:
	T value;

public:
	TestClass(const T value) {
		this->value = value;
	}
	~TestClass() {}

	T getValue() { return value; }
};

int main() {
	TestClass<int> i(5);
	TestClass<char> c('a');
	TestClass<float> f(1.2f);
	TestClass<double> d(1.1);

	printf( "%d %c %f %lf", i.getValue(), c.getValue(), f.getValue(), d.getValue() );

	return 0;
}

위 코드의 template <class T>에서 T는 자료형을 의미하는데, 어떤 형태라도 사용할 수 있음을 의미한다. 만약 개발자가 int 자료형을 사용한다면 T는 int로 치환될 것이고 이 클래스는 int형 자료를 위한 클래스가 될 것이다.
템플릿의 사용 방법은 위 메인 함수에서 사용 된 것 처럼 클래스명<자료형>으로 사용된다.