[ C++ ] 템플릿과 표준 템플릿 라이브러리(STL)

2021. 6. 9. 13:56·Archive/Develop
728x90
반응형

 

제네릭 또는 일반화

 

: 함수나 클래스를 일반화시키고,

매개변수타입을 지정하여 틀에서 찍어 내듯이 함수나 클래스 코드를 생산하는 기법

 

 

 

템플릿

 

: 함수나 클래스를 일반화하는 C++ 도구

: template 키워드로 함수나 클래스 선언

  -> 변수나 매개 변수의 타입만 다르고, 코드 부분이 동일한 함수를 일반화시킨다.

 

제네릭 타입 : 일반화를 위한 데이터 타입

 

 

 

 

템플릿 선언 양식

 

template <class T>

 

또는

 

template <typename T>

 

 

3개의 제네릭 타입을 가진 템플릿 선언

 

template <class T1, class T2, class T3>

 

 

 

 

 

템플릿 사용예시

 

 

#include <iostream>
using namespace std;
template <class T>
void myswap(T& a, T& b) {
	T tmp;
	tmp = a;
	a = b;
	b = tmp;
}
int main() {
	int a = 4, b = 6;
	myswap(a, b);
	cout << "a = " << a << ", b = " << b << endl;
	return 0;
}

 

 

 

 

 

 

 

void myswap(T& a, T& b) {
	T tmp;
	tmp = a;
	a = b;
	b = tmp;
}
class Circle {
	int radius;
public:
	Circle(int radius = 1) { this->radius = radius; }
	int getRadius() { return radius; }
};

int main() {
	//int a = 4, b = 6;
	//myswap(a, b);
	//cout << "a = " << a << ", b = " << b << endl;
	Circle donut(5), pizza(20);
	myswap(donut, pizza);
	cout << "donut반지름 = " << donut.getRadius() << ", ";
	cout << "pizza반지름 = " << pizza.getRadius() << endl;
	return 0;
}

 

 

 

 

 

객체또한 품을 수 있다.

 

 

 

 

 

템플릿의 장점

 

함수 코드를 재사용한다는 점에서 소프트웨어의 생산성과 유용성이 유리하다.

 

 

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ Python ] 파이썬 데이터 분석 | 유동인구 그래프를 그려보자!  (0) 2021.06.20
[ Python ] Pandas와 matplotlib에 대해 알아보자! | 데이터 시각화 예시  (0) 2021.06.13
[ C# ] C# 을 혼자서 익혀보자! (C# 독학 도전기) | C# 강의 링크 모음  (0) 2021.05.27
[ C++ ] 가상함수와 추상클래스  (0) 2021.05.26
[ C++ ] 상속의 개념 | 상속 예제  (0) 2021.05.18
'Archive/Develop' 카테고리의 다른 글
  • [ Python ] 파이썬 데이터 분석 | 유동인구 그래프를 그려보자!
  • [ Python ] Pandas와 matplotlib에 대해 알아보자! | 데이터 시각화 예시
  • [ C# ] C# 을 혼자서 익혀보자! (C# 독학 도전기) | C# 강의 링크 모음
  • [ C++ ] 가상함수와 추상클래스
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    백준 문제풀이
    C++
    오라클
    백준 풀이
    비박스
    파이썬 알고리즘
    oracle db
    코드업 파이썬 기초 100제
    코드업
    보안뉴스
    파이썬 문제
    Codeup
    파이썬
    코드업 기초
    백준
    docker
    Git
    자바스크립트 객체
    카카오 100일 프로젝트
    파이썬 백준
    장고
    Oracle
    파이썬 기초
    자바스크립트 API
    Django
    javascript
    파이썬 기초 문제
    자바스크립트
    백준 파이썬
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ C++ ] 템플릿과 표준 템플릿 라이브러리(STL)
상단으로

티스토리툴바