首页 > 编程知识 正文

c语言template,indirect函数

时间:2023-05-04 11:04:33 阅读:25202 作者:1795

一、函数模板产生原因:

函数重载实现了一个函数名称的密集使用,可以用相同的名称定义功能相同或相似的函数。 这样可以简化函数的调用格式,但程序需要单独定义每个函数。 那么,防止写函数的方法是什么呢? c提供函数模板可以大大方便同态函数的使用。

二、什么是函数模板?

函数模板实际上是创建一个用虚拟类型表示的公共函数,而没有具体指定函数类型和参数类型。 这个公共函数称为函数模板。 整个函数相同的函数都可以用该模板替换,无需定义多个函数,只要在模板中定义一次即可。 调用函数时,模板中的虚拟类型将替换实参类型,以提供不同的函数功能。

三.函数模板的一般形式

模板类型名称t (通用函数定义)或模板类t

四.样品比较

常规函数,不使用函数模板:

# includeiostreamusingnamespacestd; intn_add(inta,int b ) /定义函数n_add是int型数据相加{ int c; c=a b; 返回c; }doublen_add(doublea,double b ) /定义函数n_add为double型函数加法) double; c=a b; 返回c; }int main () coutn_add ) 8,2 ) endl; 调用n_add函数coutn _ add (8.35,5.5 ) endl; 调用n_add函数return 0; }

使用函数模板:

# includeiostreamusingnamespacestd; templatetypenameTTn_add(ta,T b ) { T c; c=a b; 返回c; } int main () coutn_add ) 8,2 ) endl; coutn _ add (8.12,2.2 ) endl; 返回0; }

将不使用函数模板的代码与使用函数模板的代码进行比较,以简化函数的调用格式,并使用函数重载技术对所有数据统一使用函数n_add进行操作,编译系统根据数据类型进行对应因为使用了函数模板,所以不需要逐一写对应的函数。 生成相应的模板后,将自动确定数据类型并替换相应的虚拟类型。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。