#16 [c++] 템플릿

정상준·2022년 11월 12일
0

c++

목록 보기
12/25

📝 템플릿을 이용한 일반화

  • 일반화 / 제네릭 함수
    • 함수 및 클래스의 변수 타입에 관계없이 사용할 수 있도록 틀을 만드는 방법
    • 전체 집단을 하나로 묶는 방법
  • 템플릿
    • 일반화하기 위한 C++의 도구
    • templete 키워드 사용
  • 선언
template <class T> 또는
template <typename T>

📝 제네릭 함수의 구체화

  • 구체화
    • 컴파일러가 템플릿 함수로부터 자료형에 맞는 구체화된 함수의 소스코드 생성

📝 템플릿의 장점과 단점

  • 장점
    • 함수 코드의 재사용
      • 높은 소프트웨어의 생산성과 유용성
  • 단점
    • 포팅에 취약
      • 컴파일러에 따라 지원하지 않을 수 있음
    • 컴파일 오류 메시지 빈약, 디버깅에 많은 어려움
#include <iostream>

using namespace std;

/* 
15
16.5
*/

template <class T>
T add(T data[], int n) {
	T sum = 0;

	for (int i = 0; i < n; i++) {
		sum += data[i];
	}
	return sum;
}

int main() {
	int x[] = { 1,2,3,4,5 };
	double d[] = { 1.1,2.2,3.3,4.4,5.5 };

	cout << add(x, 5) << endl;
	cout << add(d, 5) << endl;
}

	
profile
안드로이드개발자

0개의 댓글