-
뇌를 자극하는 C++ STL 4장) 템플릿(함수 템플릿, 클래스 템플릿)PROGRAMMING/STL 2024. 1. 19. 10:40
STL을 본격적으로 공부하기 전에 템플릿부터 정리하고자 한다.
(혹시 저작권에 문제가 있다면 수정하겠습니다!! 개인적인 공부용으로 정리함을 알려드립니당)
https://m.hanbit.co.kr/store/books/book_view.html?p_code=B5912645820
뇌를 자극하는 C++ STL
코드 중심으로 설명했다. 코드를 실습하면서 한 단계씩 실력을 쌓을 수 있게 했다. 단계별로 난이도를 조금씩 올리고 예제를 점진적으로 개선하는 방법을 택해 독자가 STL의 동작 원리와 구현 원
m.hanbit.co.kr
템플릿은 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; }
템플릿 관련 기초 내용은 아래 포스팅을 참고하세욥
윤성우 열혈 C++ 프로그래밍 13,14장) 템플릿(template)(함수 템플릿, 템플릿 함수, 클래스 템플릿, 템
오늘은 템플릿에 대해서 정리해보고자 합니당~! 고고씽! (혹시 저작권에 문제가 있다면 수정하겠습니다!! 개인적인 공부용으로 정리함을 알려드립니당) https://product.kyobobook.co.kr/detail/S000001589147
jjo-mathstory.tistory.com
'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장) 함수 포인터와 함수 객체 (1) 2024.01.17 뇌를 자극하는 C++ STL 1장) 연산자 오버로딩 (0) 2024.01.17