iOS开发篇――C++函数模板介绍

蓝鸥iOS培训讲师推荐:对于C来说,其实C与C++的难度应该差不多少,都不是特别难,如果有基础的话,那么学起来就更容易了。

C++为大家提供了函数模板,那么究竟函数模板是怎么回事呢?下面来了解一下!

事实上所谓的函数模板就是建立一个通用函数,其函数类型和形参类型不会具体指定,用一个虚拟的类型来代表。凡是函数体相同的函数都可以用这个模板来代替,不用定义多个函数,只需要在模板中定义一次就可以了。那么在调用函数的时候系统会根据实参的类型来取代模板中的虚拟类型,为了实现不一样的函数的的功能。为了方便大家理解,下面给出一个例子,能够让大家更好的理解。

举例:通过函数模板来实现(求两个整数或3个整数中的最大数,如果输入两个整数,程序就输出这两个整数中的最大数,如果输入3个整数,程序就输出这3个整数中的最大数)

150653749.jpg

数据不用cin语句输入,而在变量定义时初始化,程序第3~8行是定义模板。

定义函数模板的一般形式为:

template<typenameT>或template<classT>

通用函数定义通用函数定义

在建立函数模板时,只要将下面程序中定义的第一个函数首部的int改为T就可以了,也就是用虚拟的类型名T代替具体的数据类型,在对程序进行编译时,遇到第13行调用函数max(i1,i2,i3),编译系统会将函数名max与模板max相匹配,将实参的类型取代了函数模板中的虚拟类型T,此时相当于已定义了一个函数:

150717966.jpg

类型参数可以不仅仅是一个,可以根据自己的需要确定个数,例如:

150730185.jpg

那么大家可以很清楚的看到,用函数模板要比函数重载更简单,更方便。不过需要注意的是它只适合在函数的参数个数一样而类型不一样的时候使用。那么要是参数的个数不一样的话,就不能选用函数模板。

你可能感兴趣的:(ios开发,iPhone开发,函数模板,ios培训)