같은 일을 하는 함수가 다섯 개 존재하지만 실제 사용되는 것이 하나라면 결국 불필요한 코드만 늘어나 메모리를 소모하는 꼴이다. 한마디로 비효율적인데 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번 행에 브레이크 포인트를 설정하고 디버그를 실행해보자
그리고 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 |
댓글