#include <iostream>
#include <string>
using namespace std;// 习惯性 < >中 类模板用class 普通的函数模板就用typename
// template<class NAMETYPE, class AGETYPE>
template<class NAMETYPE, class AGETYPE = int> // 可以设置默认的类型值,后面在使用的时候,就不用再指定类型了
class Students06{
public:NAMETYPE m_name;AGETYPE m_age;Students06(NAMETYPE name, AGETYPE age){this->m_name = name;this->m_age = age;}void show(){cout << "姓名: " << this->m_name << endl;cout << "年龄: " << this->m_age << endl;}
};int main()
{// 1.类模板 无法使用自动类型推导// Students06 stu1("张三",100);// 2.显示指定类型// Students06<string, int> stu1("张三",18);Students06<string> stu1("张三",18); // 可以设置默认的类型值,在使用的时候,就不用再指定类型了stu1.show();return 0;
}
类模板基本概念
类模板和函数模板的定义和使用类似,我们已经进行了介绍。有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同。
- 类模板用于实现类所需数据的类型参数化