: 템플릿을 공부하는 과제이다. 지금까지 우리는 클래스를 만들때 특정 형을 고정한 상태로 만들어주었다. 예를 들면 특정 변수가 int로 되어 있다면 그 클래스의 변수는 int밖에 되지 않았다. 하지만 이것은 너무도 불편한 일이다. 이제부터는 템플릿으로 자유자재로 해당되는 곳을 변경할 수가 있다.
: 모두의 코드 템플릿 관련 링크
링크 : https://modoocode.com/219
: 템플릿의 형태에 대해서 익히고 간단한 프로그램(swap, min, max)에 대해서 만드는 프로그램을 만든다.
Template의 기본 형태
template <typename T>
ex00의 swap의 코드 예)
template <typename T>
void swap(T& a, T& b)
{
T temp;
temp = a;
a = b;
b = temp;
}
: iterator(반복자)를 만드는 과제이다. 향후에 나오게 될 cpp08에서 iterator를 많이 써야 되는데 iterator가 반복자로서 모든 대상에 특정 함수를 적용시키는 역할도 하지만, 기본적인 기능(값 확인이나 이동 등)을 한다는 것을 알면 좋다. 향후에 cpp가 제공하는 standard library에 다양한 형태의 자료구조가 있는데 iterator는 이 자료형태가 다르더라도 편하게 값을 확인이나 이동할 수 있는 기능을 제공한다.(특정 자료형은 제공이 되지 않는 대상들도 있다.)
: 이곳에서는 단순하게 array를 돌면서 특정 함수를 적용시키는 간단한 iterator를 만들게 된다.
: Array를 template을 적용하여 만든다. 다른 것을 그렇게 힘든 점은 없지만 operator 연산자 []를 이용해서 값을 접근해야 되는 것을 주의해야 한다. 또한 복사 생성자나 복사 대입 연산자를 접근할 때에 array의 내부 하나하나를 돌면서 복사를 해줘야 한다.
: Template을 처음 접했을 때의 생각은 이 대상을 잘 쓰면 굉장히 편해지겠다는 생각이 컸다. 무수하게 함수를 생성하는 것보다, 나중에 재 사용이 가능하게 끔 잘 만들어 놓으면 좋겠다는 생각을 하였다. 또한 몇주가 되지 않았는데 벌써 형태가 기억이 나지 않아서 template 형태를 자주 사용해봐야 겠다는 생각을 하였다.