- 类模板格式
template <类型参数表>
class 类模板名{
成员函数和成员变量
}; - 举例
#include<iostream>
#include<string>
using namespace std;
template<class N, class T>
class Person{
public:
N m_name;
T m_age;
Person(N name, T age):m_name(name),m_age(age){}
void show(){
cout<<"姓名:"<<this->m_name<<"\n年龄:"<<this->m_age<<endl;
}
};
void test(){
Person<string, int> p("孙悟空", 5000);
p.show();
}
int main(){
test();
return 0;
}
- 总结
3.1 类模板与函数模板的区别主要有以下2点:
- 类模板没有自动类型推导的使用方式;
- 类模板在模板参数列表中可以有默认参数。
举例:
#include<iostream>
#include<string>
using namespace std;
template<class N=string, class T=int>
class Person{
public:
N m_name;
T m_age;
Person(N name, T age):m_name(name),m_age(age){}
void show(){
cout<<"姓名:"<<this->m_name<<"\n年龄:"<<this->m_age<<endl;
}
};
void test(){
Person<> p("孙悟空", 5000);
p.show();
}
int main(){
test();
return 0;
}
3.2 函数模板可以作为类模板成员函数。