C++模板函数使用

Posted Linux编程学堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++模板函数使用相关的知识,希望对你有一定的参考价值。

3 模板函数的使用

函数模板可以增加代码重用率,它使用非特定类型定义类和函数,到实际调用函数的时候,再用特定的类型代替它们。所以,我们用模板函数的技术,优化上面重载的my_max()函数。根据模板函数的定义如下:

template < class 虚拟类型名>

class 类名

类声明体 ;

其中,template<class 虚拟类型名> 中的“class”可以使用typename关键字指定一个类型的名称。例如 class TYPE,表示TYPE是一个类型的名称。例如:

template <class T1> class classname;

template <typename T1 > class classname;

如果类型形参表有多个类型,每个类型之间可以使用逗号“,”分隔,如下:

template <class T1, class T2, class T3> class classname;

template <typename T1, typename T2, typename T3> class classname;

那么,在调用一个模板函数的时候,根据传递给模板函数的参数类型,才确定T1,T2,T3表示的类型,才定义一个具体的函数。最终,调用该函数。

程序测试代码如下:

程序运行结果如下:

可以看到,我们定义了一个模板函数:

template <class T>

T my_max(T x, T y) //定义模板函数

return (x > y) ? x : y;

其中,类型参数表中定义class T,表示 T 是一个类型。然后,在定义my_max()函数的时候,就使用T作为数据类型。

那么,在my_max()模板函数的实际调用中,根据操作数据的类型,再决定T是那个数据类型。例如:

(1) 调用my_max(1, 5); 参数是一个int类型,所以,对应 my_max(T x, T y);函数,那么,T就是int类型。

(2) 调用my_max('A', 'B'); 参数是一个char类型,所以,对应 my_max(T x, T y);函数,那么,T就是char类型。

所以,模板函数中的类型参数,是根据函数的实际调用,再确定参数类型。通过这个例子,我们可以看到模板函数的使用,大大提高代码的重用性。

以上是关于C++模板函数使用的主要内容,如果未能解决你的问题,请参考以下文章

限时进 | 2k人C语言群!

2000人C语言学习群!

C++模板(函数模板/类模板)

C++模板(函数模板/类模板)

C++模板

吐血整理:C++编程语言资源汇总