본문 바로가기
Develop/C++

[C ++] 템플릿(Template)

by J-rain 2023. 2. 2.

같은 일을 하는 함수가 다섯 개 존재하지만 실제 사용되는 것이 하나라면 결국 불필요한 코드만 늘어나 메모리를 소모하는 꼴이다. 한마디로 비효율적인데 C++에서는 가급적이면 함수 다중 정의 보다는 '함수 템플릿'을 사용하길 권장한다.

 

template <typename T>
반환형식 함수이름(매개변수)
{

}

 

 

#include <iostream>
using namespace std;

template <typename T>
T Add(T a, T b)
{
  return a + b;
}

int main(void)
{
 cout << Add(3,4) << endl;
 cout << Add(3.3, 4.4) << endl;
 
 return 0;
 
 }

실행결과

 

 

7번 행에 브레이크 포인트를 설정하고 디버그를 실행해보자

템플릿 함수의 이름이 Add<int>(int a, int b) 로 확정된 것을 알 수 있다.

 

그리고 12번 행 코드는 다음과 같이 변경할 수 있다.
cout <<  Add<int>(3, 4) << endl;

호출자 코드에 기술한 <int>는 <typename T>와 짝을 이룬다. 따라서 T를 int형으로 해석해 코드를 생성한다.

같은 일을 하는 코드가 여러 번 등장할 필요가 없어졌기 때문에 안정적인 구조이다.

'Develop > C++' 카테고리의 다른 글

[C ++] Namespace 와 using  (0) 2023.02.02
[C ++] 식별자 검색 순서  (0) 2023.02.02
[C ++] 다중 정의 (Overloading)  (0) 2023.02.02
[C ++] 범위 기반 for문  (0) 2023.02.02
[C ++] new와 delete연산자  (0) 2023.02.02

댓글