Template 2
Programming/C++ 2012. 10. 14. 20:17 |※ C++ 표준 라이브러리는 템플릿을 기반으로 디자인된다. 따라서 템플릿을 잘 알면, 그 만큼 라이브러리에 대한 이해도와 활용능력이 향상된다.
클래스 템플릿을 기반으로 Point<int> 템플릿 클래스의 객체를 저장할 수 있는 객체는 어떻게 생성해야 할까?
BoundCheckArray<int> iarr(50);
-> 다음과 같이 객체를 생성하면, int형 데이터의 저장이 가능한 것처럼, 저장대상의 자료형이 Point<int>이니, 다음과 같이 객체를 생성하면 된다.
BoundCheckArray<Point<int>> oarr(50);
그리고 저장대상이 Point<int>형이 포인터라면,
BoundCheckArray<Point<int>*> oparr(50); 이렇게 선언하면 된다.
또한, 위의 문장은 typedef 선언을 통해 다음과 같이 구성해서 된다.
typedef Point<int>* POINT_PTR;
BoundCheckArray<POINT_PTR> oparr(50);
템플릿 클래스라 하여 일반 클래스와 비교해서 다른 문법체계를 지니는 것은 아니다.
우리가 알고 있는 C++ 문법의 이해를 기반으로 템플릿과 관련된 다양한 확장이 가능하다.
'Programming > C++' 카테고리의 다른 글
클래스 템플릿의 특수화 (Class Template Specialization) (0) | 2012.10.16 |
---|---|
템플릿 클래스의 객체를 인자로 받는 일반함수의 정의와 friend 선언 (0) | 2012.10.15 |
클래스 템플릿의 선언과 정의의 분리 (1) | 2012.10.11 |
클래스 템플릿(Class Template) (0) | 2012.10.11 |
함수 템플릿의 특수화(Specialization) (0) | 2012.10.10 |