C++函数模版的简单使用

模版算是C++的独有特性吧,也算是C++中比较难的地方,我平时开发的时候用的很是少,或者几乎没有用到,须要模版的地方是能看懂框架中相关的代码;算法

模版函数相对仍是很简单的,引入模版的目的在于代码的重用;好比算法类似,可是因为数据类型不一样,咱们不得不把一样的一份代码拷贝两次,而仅仅是为了修改数据类型,那么在引入了函数模版以后,咱们能够仅仅用一份代码而表示不一样重载函数。框架

下面介绍一下最简单的函数模版的应用:函数

template <typename T>  //定义一个抽象的数据类型Tspa

T myMax(T a, T b) {    //声明函数模板开发

  return a > b ? a : b; 编译器

}编译

int main () {模板

  int  a = 2;数据类型

  int b = 3;float

  std::cout<<myMax(a, b)<<std::endl;  //动态生成函数 int myMax(int , int)

 

  float c = 2.0f;

  float d = 3.0f;

  std::cout<<myMax(c, d)<<std::endl;  //动态生成函数 flota myMax(float, float)

}

代码在第一次调用myMax()函数时,其参数都是int型,则编译器推导模板参数T为int,编译器会以函数模板为样板,以实际类型int代替函数模板中的抽象类型T,自动为这个函数调用生成一个int类型的版本。

相关文章
相关标签/搜索