目录
前言
在C++ 编程中,模板是一项极为强大的特性,它支持泛型编程,让我们能够编写出与类型无关的通用代码,极大地提高了代码的复用性。今天,就带大家深入了解C++ 模板初阶的相关知识。
一、泛型编程
要点
泛型编程旨在编写与类型无关的通用代码。以交换函数为例,传统方式针对不同类型需分别定义函数,如 void Swap(int& left, int& right) 、 void Swap(double& left, double& right) 等。但这样代码冗余,可维护性差,新类型出现时需新增对应函数。
易错点
过度依赖函数重载实现不同类型操作,未意识到代码复用性低和维护困难的问题。
代码示例
cpp
// 传统针对int类型的交换函数
void Swap(int& left, int& right) {
int temp = left;
left = right;
right = temp;
}
// 传统针对double类型的交换函数
void Swap(double& left, double& right) {
double temp = left;
left = right;
right = temp;
}
二、函数模板
2.1 函数模板概念
要点
函数模板代表一个函数家族,它本身不是函数,而是编译器用来生成特定具体类型函数的模具,与类型无关,使用时根据实参类型实例化出对应版本。
易错点
误认为函数模板就是实际可调用函数,忽视其需实例化的过程。
2.2 函数模板格式
要点
格式为 template<typename T1, typename T2, ……, typename Tn> ,返回值类型 函数名(参数列表) {} 。其中 typename 是定义模板参数关键字,也可用