CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

C++提高部分_C++函数模板_基本用法—C++语言工作笔记081-免费源码丞旭猿

在c++中用到的主要技术,一个是面向对象,一个是 就是泛型编程,而泛型编程的主要实现技术就是利用模板技术实现的.可以看到c++提供了两种模板机制,一种是函数模板,一种是类模板,

我们这里先说,函数模板.

比如我们现在写一个函数 void func(int a),现在我们先不去写这个参数的类型,比如int,写成T,

然后返回值的类型也先不去固定,也写成T,这样就变成了T func(T a),这样就是一个函数的模板,

可以看到他可以把返回值的类型和参数的类型,都抽象出来了.

可以看到上面,已经写出了,函数模板的声明语法.

然后我们再去自己写代码去使用一下.

首先我们写一个普通的,交换整型数据的交换函数

然后我们再去写一个交换浮点型数据的,交换函数.

然后我们再去写一个test01方法,然后调用swapInt,去看看效果

然后把交换后的数据打印出来看看

可以看到没问题对吧

然后我们再去调用一下swapDouble,交换一下,两个浮点型数据

可以看到也没问题对吧.

但是,我们知道c语言有很多的类型,比如有,float,int,double,还有自定义的类型,比如我们之前写的person等等.这么多类型,不能每个用的时候,都写一个交换函数吧,太麻烦了,

换个时候我们就可以用模板函数,来解决这个问题了.

可以看到上面两个函数,除了参数类型,其他都一样.

这样的情况,就可以使用模板函数了.

可以看到上面,我们通过

template 这样就声明了一个模板,

注意,可以看到因为我们还不知道参数的类型是什么,是整型啊,浮点型啊,还是什么类型,

事前不知道,所以我们用了typename T,用了这个T来表示.

然后声明了模板以后,接着下面再去做一个,利用模板实现这个mySwap模板函数.可以看到,

我们定义的这个函数的参数类型是T,因为我们不确定是要交换什么类型的参数.

然后可以看到上面我们,去声明ab,两个整型,然后调用mySwap去测试,可以看到没问题对吧.

可以看到,上面我们直接调用的mySwap(a,b),没有指定数据类型,这个时候也没有报错,

为什么呢?

这是因为,这个时候是c++编译器,自动推导的数据类型,我们传入的a,b都是int类型,c++

编译器就自动推导出来了,这两个数据都是int类型的.

执行看结果也没问题对吧

然后我们再去使用一种调用方法

mySwap(a,b);这样来用一下,这样可以看到我们明确的指定了

参数的类型是int,他就直接把参数当成int类型了.

执行看结果没问题,这样使用也行

然后我们可以去总结一下,在c++中的,模板函数的使用语法

类型参数化.

可以看到上面也说了函数模板的使用,可以使用自动类型推导也就是上面那种

mySwap(a,b),不指定参数类型的使用方式,一种是显示指定类型,

也就是上面那种mySwap(a,b)的使用方式.

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容