-
Notifications
You must be signed in to change notification settings - Fork 0
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형 자료를 위한 클래스가 될 것이다.
템플릿의 사용 방법은 위 메인 함수에서 사용 된 것 처럼 클래스명<자료형>
으로 사용된다.