프로그래밍/C++

클래스 템플릿

우대비 2022. 11. 1. 19:51
반응형
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