1. 类模板格式
    template <类型参数表>
    class 类模板名{
    成员函数和成员变量
    };
  2. 举例
#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;
}
  1. 总结

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 函数模板可以作为类模板成员函数。