-
뇌를 자극하는 C++ STL 4장) 템플릿(함수 템플릿, 클래스 템플릿)PROGRAMMING/STL 2024. 1. 19. 10:40
STL을 본격적으로 공부하기 전에 템플릿부터 정리하고자 한다.
(혹시 저작권에 문제가 있다면 수정하겠습니다!! 개인적인 공부용으로 정리함을 알려드립니당)
https://m.hanbit.co.kr/store/books/book_view.html?p_code=B5912645820
템플릿은 STL 제너릭 프로그래밍의 핵심입니다.
템플릿은 컴파일 타임에 클라이언트가 여러 타입의 함수나 클래스를 쉽게 생성합니다.
- 뇌를 자극하는 STL템플릿
1) 함수 템플릿
tempate<typename T> Function<T>() : 템플릿의 인스턴스라고 부르며, 컴파일러가 생성한 함수 정의 코드이다.
2) 클래스 템플릿
//Array 클래스 - 앞으로 자주 보게 될 유형의 코드! #include <iostream> #include <string> using namespace std; template<typename T> class Array { private: T* buff; int size; int capacity; public: // 1. 생성자 2. 소멸자 3. Add함수 4. operator[] 5. Getsize() Array(int capacity = 100) : buff(0), size(0), capacity(capacity) {buff = new T[capacity];} ~Array() { delete []buff; } void Add(T data) {buff[size++] = data;} T& operator[](int idx) {return buff[idx];} T operator[](int idx) const {return buff[idx];} int Getsize() const {return size;} }; int main() { Array<int> iarr; iarr.Add(10); iarr.Add(20); iarr.Add(30); for (int i = 0; i < iarr.Getsize(); i++) { cout << iarr[i] << " "; } cout << endl; return 0; }
템플릿 관련 기초 내용은 아래 포스팅을 참고하세욥
'PROGRAMMING > STL' 카테고리의 다른 글
뇌를 자극하는 C++ STL 7장) 연관 컨테이너(set, multiset, map, multimap) (0) 2024.02.29 뇌를 자극하는 C++ STL 6장) 시퀀스 컨테이너(vector, deque, list) (2) 2024.02.28 뇌를 자극하는 C++ STL 5장) STL 소개 (2) 2024.01.27 뇌를 자극하는 C++ STL 2,3장) 함수 포인터와 함수 객체 (0) 2024.01.17 뇌를 자극하는 C++ STL 1장) 연산자 오버로딩 (0) 2024.01.17