플릿
- 여러 타입에서 작동 할 수 있는 클래스나 함수를 구현 할 수 있다.
- c#의 제너릭은 템플릿의 간소화 버전 같은 느낌이다.
장점
- 각 타입별로 같은 기능을 지원하는 클래스를 따로 만들 필요가 없다
- 실제로 사용한 타입에 대해서만 코드가 생성된다
단점
- 컴파일 시간이 길어진다
- 용량이 커질 수 있다
- 디버깅이 어려울 수 있다.
template <typename T> //클래스 템플릿
class MyClassA
{
public:
T mydata;
template <typename A> //함수 템플릿
A myfunc(A a, A b)
{
return a+b;
}
public:
MyClassA() {};
~MyClassA() {};
//MyClassA(T a) :mydata(a) {};
};
template <typename T,typename Y>
int funcTest(T t,Y y)
{
return t + y;
}
void main()
{
MyClassA<int> classA;
classA.mydata = 99;
auto aff = classA.myfunc(3,4); //7
auto vlaue = funcTest(5, 9); //14
}
'프로그래밍 > C++' 카테고리의 다른 글
이동 시멘틱 (0) | 2019.04.29 |
---|---|
함수 포인터 (0) | 2019.04.29 |
스마트포인터 (0) | 2019.04.29 |
OOP 객체지향프로그래밍 (0) | 2019.04.29 |
C++ 11 추가된 기능 (0) | 2019.04.29 |