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++ 문법의 이해를 기반으로 템플릿과 관련된 다양한 확장이 가능하다.

Posted by scii
: