定义
- 与函数模板类似,类也可以通过参数泛化,从而可以构建出一族不同型别的类实例(对象)
- 类模板实参可以是某一型别或常量(仅限int或enum)
实例
template <typename T1, typename T2,int num=1000>
class stu {
public:
T1 math;
T1 chinese;
T2 name;
stu( T1 math_t,T1 chinese_t,T2 name_t):math(math_t),chinese(chinese_t),name(name_t)
{}
void ave()
{
cout << "ave grade= " << (math + chinese) / 2 << endl;
cout << "all= " << num * 2 << endl;
}
};
int main()
{
stu <int, string>wang(83, 56, "wang");
cout << "name=" << wang.name << endl;
cout << "math=" << wang.math << endl;
cout << "chinese=" << wang.chinese << endl;
wang.ave();
cout << endl;
stu <string, string>assess("yes", "yes", "wang");
cout << "name=" << assess.name << endl;
cout << "math=" << assess.math << endl;
cout << "chinese=" << assess.chinese << endl;
}