블로그 이미지
자신의 단점을 메꾸는 것을 단(鍛)이라 하고 자신의 강점을 갈고 닦는 것을 련(鍊)이라 하여, 두가지를 합친 것을 단련이라고 부른다. 붕대마음

카테고리

전체목록 (666)
참고사이트 (8)
Goal (4)
Travel (10)
My Life (105)
Game (35)
Game Review (7)
Game Plan (0)
Books (5)
English (1)
Optimizing (12)
Study (217)
유용한 것들_etc (44)
유용한 것들_func (20)
Unity (48)
Unreal (87)
작업장 (54)
RenderMonkey (6)
정리요망 (1)
따라잡기 시리즈 (0)
링크용 (0)
Total343,844
Today11
Yesterday82

'기본템플릿인자'에 해당되는 글 1건

  1. 2010.06.25 기본 템플릿 인자


함수에서 기본인자값을 정해주는것과 비슷하게 템플릿의 데이터형도
디폴트로 미리 정의해 줄 수 있다.
이를 기본 템플릿 인자라고 한다.
그리고 언제나 ">"을 쓸때는 ">>" 을 주의해야 한다.
괄호가 두개 겹쳐있는것이 잘못하여 시프트연산자로 인식될 수도 있기 때문이다.


#include <vector>
#include <stdexcept>

template <typename T, typename CONT = std::vector<T> >
class Stack
{
private:
 CONT vecElem;

public:
 void push(T const&);
 void pop();
 T top() const;
 bool empty() const
 {
  return vecElem.empty();
 }
};

// 두개의 템플릿 파라미터를 가지므로 멤버함수정의시 모두 명시
template <typename T, typename CONT>
void Stack<T, CONT>::push(T const& elem)
{
 vecElem.push_back(elem);
}

template <typename T, typename CONT>
void Stack<T, CONT>::pop()
{
 if(vecElem.empty())
  throw std::out_of_range("Stack pop");

 vecElem.pop_back();
}

template <typename T, typename CONT>
T Stack<T, CONT>::top() const
{
 if(vecElem.empty())
  throw std::out_of_range("Stack pop");

 return vecElem.back();
}

'Study > Template' 카테고리의 다른 글

템플릿 템플릿 파라미터  (0) 2010.06.30
데이터형이 아닌 클래스 템플릿 파라미터  (2) 2010.06.25
기본 템플릿 인자  (0) 2010.06.25
클래스 템플릿 특수화  (0) 2010.06.24
클래스 템플릿  (0) 2010.06.18
오버로딩 (함수 템플릿)  (0) 2010.06.17
Posted by 붕대마음

댓글을 달아 주세요

최근에 달린 댓글

최근에 받은 트랙백

글 보관함