728x90
반응형

템플릿 2

C++문법/ (클래스) 템플릿, Template - 2

앞에서 함수 템플릿을 배웠듯이 클래스 템플릿도 뭔가 찍어내는 것 같은 느낌이다. 맞다. 하지만 조금 느낌은 다른데 클래스 템플릿은 구조나 알고리즘은 같되 멤버의 타입이 다른 클래스를 찍어내는 틀이다. 예를 보면서 알아보자 아래 클래스들은 화면의 특정 위치에 값 하나를 출력하는 클래스다. 우선 int, char 순서대로 class PosValueInt { private: int x,y; int value; public: PosValue(int ax, int ay, int av): x(ax), y(ay), value(av) {} void outvalue(); }; class PosValueChar { private: int x,y; char value; public: PosValue(int ax, int a..

C++문법/ (함수) 템플릿, Template - 1

템플릿이란 무엇이냐? 하나의 클래스를 서로 다른 (사용자가 원하는) 타입에 재사용할 수 있도록 하는 것이다. 타입만 넣어주면 자동으로 코드를 찍어내는 틀이라고 보면 된다. 예를 들어서 여러 타입의 객체를 저장할 수 있는 연결리스트와 같은 자료구조를 만들 수 있다. **template 와 template 는 정확히 같은 의미를 같지만 typename키워드를 많이 쓴다. //template class를 만들었다. template class ShiftedList { T* array; // 특정 타입의 배열 int offset, size; public: ShiftedList(int sz) : offset(0), size(sz) { array = new T[size]; // 타입 T의 배열 } ~ShiftedLi..

728x90
반응형