C/C++教程

C++模板的使用

本文主要是介绍C++模板的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、什么是模板

模板最大的作用就在于可以建立一个通用的架构提高代码的复用性,就比如我们在网上下载的PPT模板就可以使用外观把内容更换成我们自己的内容。

2、函数模板(也叫泛型编程)

C++提供两种模板机制:函数模板和类模板

2.1 函数模板的语法

作用:建立一个通用模板,函数返回值类型可以在使用时指定。

语法:

 1 template<typename T> //模板函数的申明 

template:申明创建模板

typename:表明后面的符号是一种数据类型,也可用class代替

T:数据类型名称,可以用其它字母替换。

比如有两个函数实现方法一样只是函数参数类型不一样

 1 void swapInt(int &a, int &b)  //整数交换
 2 {
 3     int temp = a;
 4     a = b;
 5     b = temp;
 6 }
 7 void swapDouble(double &a, double &b)  //浮点数交换
 8 {
 9     double temp = a;
10     a = b;
11     b = temp;
12 }

如果使用模板就不需要定义两个函数,在使用函数的时候再定义函数的类型

在指定函数时可以使用函数推导或显示指定函数类型

 1 //函数模板语法
 2 template<typename T>
 3 
 4 void Swap(T &a, T &b)
 5 {
 6     T temp = a;
 7     a = b;
 8     b = temp;
 9 }
10 void test01()
11 {
12     int a = 10;
13     int b = 20;
14     //Swap(a, b);  //自动类型推导
15     //显示指定类型
16     Swap<int>(a, b);
17     cout << a << endl;
18     cout << b << endl;
19     
20 }

总结:

  • 函数模板利用关键字 template
  • 使用函数模板有两种方式:自动类型推导、显示指定类型
  • 模板的目的是为了提高复用性,将类型参数化

3、使用函数模板的注意事项

  • 自动类型推导时必须推导出数据的一致性T才能使用
  • 模板必须确定出T的数据类型才能使用(即使没用使用数据类型T)
1     int a = 10;
2     int b = 20;
3     char c = 'c';
4     //显示指定类型
5     Swap<int>(a, c);  //传入数据类型不一致可能会报错
 1 template<typename T>
 2 void func()
 3 {
 4     cout << "func()函数调用" << endl;
 5 }
 6 void test01()
 7 {
 8     func<int>();  //当使用了模板即使没有用到数据类型T时在使用时也必须传入一个数据类型才能调用。
 9     
10 }

 

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

 

这篇关于C++模板的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!