- 2
- 0
- 约1.06万字
- 约 32页
- 2016-12-21 发布于河南
- 举报
编译器从实参的类型推导出函数模板的类型参数。 将交换函数swap()抽象成一个模板,将数据类型作为它的一个参数,就构成了函数模板,即 template class T void swap(T x,T y) { T temp=x; x=y; y=temp; } class T称为”模板参数”,既可以是基本数据类型,也可以是用户定义的class类型。 声明的swap()函数并不是一个信息完整、实际可用的函数,代表的是一类函数,称为”函数模板”,因为它描述了这类函数的基本情况。 使用函数模板时,必须把数据模板参数T实例化,才能完成具体的函数功能,即用函数调用语句中的实参来实例化模板参数T。 如:int i,j; swap(i,j); //实例化为int型 double x,y; swap(x,y); //实例化为double型 也可用typename template class T void swap(T a,T b) { T temp=a; a=b; b=temp; } void main() { int i=24,j=78; double x=72.9,y=48.6; swap(i,j); //函数模板实例化为整型 couti=i,j=jendl
原创力文档

文档评论(0)