C++不定参数,模板函数,模板类详解附实例

前言

在 C++ 中,有时我们在写一个函数时并不知道参数的数量和类型,这时需要用到不定参数,模板函数。

正文

不定参数

不定参数怎么表示?

对于不定参数的表示,就是三个点,注意是英文的点

那么我们在正常使用时函数参数写成这样

其中 typename 与右面不定参数列表的类型相同。如果不定参数前有多个确定类型的参数,那么不定参数类型与最后一个确定类型的参数的类型一样。

那么怎么获取不定参数呢?

获取不定参数需要一个头文件

获取不定参数大概分为如下几步

(1)定义 va_list

(2)把 va_list 与可变参数表绑定

(3)获取参数并对参数进行想要的操作

(4)结束参数的获取

代码如下

那么就来写一个函数,打印出所有的参数

模板函数

刚才是不知道参数数量,那现在不知道参数类型怎么办?

这样就要用模板函数,书写格式如下

函数可以这样写

这样不管是 int float double 还是其他类型,都可以使用这个函数,不需要每个类型都单独写一个函数,降低代码重复性。

模板类

顾名思义,模板类的意思和模板函数差不多,这里面最好的例子就是 cout 和 printf,但是 cout 涉及到了对于 ”<<“符号的处理,这里暂时不讲。printf 可以打印任何类型的变量,那我们就自己写一个 printf。注:printf 肯定还有更底层的函数,这里暂不涉及。(因为你会发现根本看不懂

我直接给出代码

这里我定义了一个 print 类来写函数。首先我们这里定义了一个模板,中间 `...`是我们一开始说的不定参数,下面 cppprintf 函数用了刚才定义的不定模板参数,然后逐个输出,输出完一个就调用自己(递归)输出下一个。下面的是单个参数的情况,直接输出就行。

最后

那么到这里你就掌握了以上知识点,最近也是消失了几个周,其实是去参与了 Developers-Union 的开发,那整篇文章也就结束了,拜拜~

猜你喜欢

转载自blog.csdn.net/m0_64036070/article/details/128584088