C++中的模板编程是一种强大的特性,它允许程序员编写与类型无关的通用代码,从而提高代码的复用性和灵活性。模板编程主要包括函数模板和类模板两种形式。
1. 函数模板
函数模板是一种通用的函数定义,可以处理不同类型的数据。通过函数模板,程序员可以编写一个函数,该函数可以接受多种类型的参数,并根据实际传入的参数类型生成相应的函数实例。
1.1 函数模板的基本语法
函数模板的基本语法如下:
template <typename T>
T functionName(T arg) {
// 函数体
}
其中,typename T
是模板参数,T
是一个占位符,表示实际使用的类型。编译器会根据实际调用时传入的参数类型,自动生成对应的函数代码。
1.2 函数模板的实例化
函数模板的实例化分为隐式实例化和显式实例化。隐式实例化是编译器根据传入的参数类型自动生成函数实例,而显式实例化则是在代码中明确指定模板参数的类型。
例如:
template <typename T>
T add(T a, T b) {
return a + b;
}
int main() {
int result = add<int>(3, 4); // 显式实例化
double result2 = add(3.5, 4.5