Coding/Basic Concept (C++)

Template / Function template / Class template

빈그레 2024. 2. 5. 21:06

 

 

 

 

 


Template 

 

 

 

 

 

 

Template

 

함수나 클래스를 정의할 때, 구체적인 자료형(data type)을 명시하지 않고, 이를 사용자가 정의한 자료형으로 대체할 수 있도록 하는 기능이다.

 

이를 통해 자료형에 독립적인 코드를 작성할 수 있어, 코드의 재사용성을 높일 수 있다. (여러 자료형으로 사용가능)

 

template에는 두 가지 유형이 있다.

1. Function Template (함수 템플릿)

2. Class Template (클래스 템플릿)

 

 

 

Function Template

 

: 함수 템플릿을 사용하면 하나의 함수로 여러 자료형에 대응하는 함수를 만들 수 있다. 

 

일반적으로 함수는 아래와 같이 정의한다. 아래 함수와 같이 정의하면 int 자료형에 대해서만 동작한다. double이나 float과 같이 다른 자료형에 대해서도 동일한 기능을 수행하려면, 각 자료형마다 double max,,,, float max,,와 같이 새롭게 함수를 정의해주어야 한다.

 

하지만, 템플릿을 사용하면 자료형에 독립적인 함수를 만들 수 있다.

 

 

 

위와 같이 template으로 함수를 선언할 수 있다. T는 사용자가 정의할 자료형이다.

 

 

 

 

사용자가 임의로 설정한 int나 double에 대하여 max에 대한 자료형이 여러가지로 쓰일 수 있다.

 

 

 

 

Class Template

 

 

 

 

 

class도 template으로 선언하여 class 내부에서 쓰이는 변수들에 대하여 여러 자료형을 사용할 수 있다.

 

 

 

 

 

'Coding > Basic Concept (C++)' 카테고리의 다른 글

Vector & Array  (1) 2023.02.19