템플릿
코딩하다 보면 써야할 함수 내용은 같은데, 파라미터와 반환타입을 다르게 해주어야 해서 같은 내용을 오버로딩을 하는 경우가 생길 것이다. 이러한 상황을 피하기 위해 템플릿(template)이라는 사용할 것이다.
int GetMax(int x, int y) {
if (x > y) return x;
else return y;
}
double GetMax(double x, double y) {
if (x > y) return x;
else return y;
}
이런 식으로 특정한 상황의 오버로딩이 생긴다면
template <typename T>
T GetMax(T x, T y) {
if (x > y) return x;
else return y;
}
이러한 식으로 template을 사용하는 것이다. typename T는 하나의 타입에 대응이 되기 때문에 필요한 타입이 늘어난다면 타입 개수에 맞추어 늘려줄 필요성이 있다.
template <typename T1, typename T2>
void Output2(T1 a, T2 b) {
cout << a << " , " << b << endl;
}
T1과 T2의 typename이 다르게 설정되어있지만, 같은 경우에도 정상적으로 동작한다.
특히 반환값이 없는 경우, 이런 상황이 자주 발생한다.
':: 프로그래밍 :: > 수업 내용' 카테고리의 다른 글
2024.03.05 C#) summary, 얕은복사/깊은복사, 정적변수선언, 정보은닉, 프로퍼티, 상속 (0) | 2024.03.12 |
---|---|
2024.03.04 C#) 생성자 (0) | 2024.03.08 |
2024.02.28 C++) 네임스페이스, 메모리패딩, 오버로딩, 접근제한자 (1) | 2024.03.06 |
2024.02.27 C++) 구조체, 포인터, 값에 의한 호출 / 참조에 의한 호출 (0) | 2024.03.06 |
2024.02.26 C++) 함수, 열거형 (0) | 2024.03.04 |