반응형
template<typename T>
class RandomBox
{
public:
T GetRandomData()
{
int idx = rand() % 10;
return _data[idx];
}
public:
T _data[10];
};
template를 사용하면 "클래스에서 사용하는 타입별"로 "클래스를 여러개 만들 필요" 없이 하나로 대체가 됨
template<typename T, int SIZE > // "int SIZE = 10"처럼 default 값을 넣어줄 수 있음
class RandomBox
{
public:
T GetRandomData()
{
int idx = rand() % SIZE;
return _data[idx];
}
public:
T _data[10];
};
"2개 이상의 타입"을 받을 수도 있고 "타입 지정 "및 "함수처럼 default 값"도 넣을 수 있음
// 템플릿 특수화
template<int SIZE>
class RandomBox
{
public:
GetRandomData()
{
int idx = rand() % SIZE;
return _data[idx];
}
public:
int _data[SIZE];
};
template 특수화를 이용해서 "특정한 타입으로 만든 클레스"를 따로 설계할 수가 있음
반응형
LIST
'프로그래밍 > C++' 카테고리의 다른 글
STL list 정리 (0) | 2022.11.03 |
---|---|
STL vector 정리 (0) | 2022.11.02 |
함수 템플릿 (0) | 2022.11.01 |
함수 객체 (0) | 2022.11.01 |
함수포인터 (0) | 2022.10.31 |