#include <iostream>
using namespace std;
template<typename T> // 템플릿 선언
class RandomBox
{
public:
T GetRandomData() // 리턴 값이 템플릿
{
int idx = rand() % 10;
return _randData[idx];
}
public:
T _randData[10]; // 타입형이 템플릿
};
template<typename T> // 템플릿 선언
void Print(T a) // 매개변수의 타입형이 템플릿
{
cout << a << endl;
}
int main()
{
srand(static_cast<unsigned int>(time(nullptr)));
// 템플릿 : 함수나 클래스를 찍어내는 틀
// 조커카드
RandomBox<int> rbx1; // 템플릿이 포함된 클래스를 선언 할 때, <> 로 타입형을 적어준다
for (int i = 0; i < 10; i++)
{
rbx1._randData[i] = i;
}
int value1 = rbx1.GetRandomData();
cout << value1 << endl;
RandomBox<float> rbx2;
for (int i = 0; i < 10; i++)
{
rbx2._randData[i] = i + 0.5f;
}
float value2 = rbx2.GetRandomData();
cout << value2 << endl;
}