template
e.g.1
#include <iostream>
template<class T>
class Data {
T data;
public:
void SetData(T d){ data=d; }
T GetData(){ return data; }
};
int main(void)
{
Data<int> data_int;
Data<float> data_float;
data_int.SetData(3);
data_float.SetData(1.5f);
std::cout << data_int.GetData() << std::endl;
std::cout << data_float.GetData() << std::endl;
return 0;
}