一、在创建对象的时候,必须指明具体的数据类型
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
template <class T1, class T2>
class Model
{
public:
T1 para_a;
T2 para_b;
Model() {}
Model(T1 _para_a, T2 _para_b): para_a(_para_a), para_b(_para_b) {}
T1 get_paraA()
{
T1 var = 3;
return var + para_a;
}
T2 get_paraB()
{
T2 var = 9;
return var + para_b;
}
};
int main()
{
Model<int, double> m;
m.para_a = 10;
m.para_b = 2.5;
cout << m.get_paraA() << endl;
cout << m.get_paraB() << endl;
return 0;
}
二、类模板可以为通用数据类型指定缺省的数据类型
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
template <class T1, class T2=string>
class Model
{
public:
T1 para_a;
T2 para_b;
Model() {}
Model(T1 _para_a, T2 _para_b): para_a(_para_a), para_b(_para_b) {}
T1 get_paraA()
{
T1 var = 3;
return var + para_a;
}
T2 get_paraB()
{
return para_b;
}
};
int main()
{
Model<int> m;
m.para_a = 10;
m.para_b = "Turtle";
cout << m.get_paraA() << endl;
cout << m.get_paraB() << endl;
return 0;
}
三、可以用new创建模板类对象
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
template <class T1, class T2=string>
class Model
{
public:
T1 para_a;
T2 para_b;
Model() {}
Model(T1 _para_a, T2 _para_b): para_a(_para_a), para_b(_para_b) {}
T1 get_paraA()
{
T1 var = 3;
return var + para_a;
}
T2 get_paraB()
{
return para_b;
}
};
int main()
{
Model<int, string> *m = new Model<int, string>(19, "Turtle");
cout << m->get_paraA() << endl;
cout << m->get_paraB() << endl;
return 0;
}
总结
- 在创建对象的时候,必须指明具体的数据类型
- 类模板可以为通用数据类型指定缺省的数据类型
- 可以用new创建模板类对象