之前我们知道的交换两个变量的方法有宏定义、函数,这两种方式都能实现两个变量的交换,但是各有各的优缺点
宏定义:
- 优点:代码复用,适合所有的类型
- 缺点:缺少类型检查,宏在预处理阶段就被替换掉,编译器并不知道宏的存在
函数:
- 优点:真正的函数调用,编译器对类型进行检查
- 缺点:类型不同需要重复定义函数,代码无法复用
上边两种方式都各有利弊,但是在C++中,存在泛型编程的概念:即不考虑具体数据类型的编程方式(如下)
C++中的泛型编程有函数模板与类模板,这章我们先来了解函数模板
函数模板是一种特殊的函数,可以使用不同的类型进行调用,对于功能相同的函数,不需要重复编写代码,并且函数模板与普通函