模板

发布时间 2023-09-10 14:05:38作者: Toriyung

顾名思义,就是如果存在同样功能但数据类型不同的函数或者类,分别写出不同的定义很冗余,所以将数据类型用一个记号统一表示(参数化),把这些不同函数(或者不同类)给统一成一个模板,这就是数据类型参数化

 

函数模板

  .h文件

template<typename T>
T func1(T a)
{
    //函数功能
}

定义如上,使用template和typename关键字,表示这是一个模板,T代表任意的数据类型

  .cpp文件

int main()
{
    int b=0;
    int a = func1(b);
    return 0;  
}    

使用如上,函数模板会自动识别类型

 

类模板

  .h文件

template<typename T>
class Myclass
{
public:
  Myclass();
  T func1();
}

template<typename T>
T Myclass<T>::func1();

定义如上,不同的是,类模板的类函数定义时,类名需要加上<T>

 

  .cpp文件

int main()
{
    Myclass<double> a;
}