C++ 函数模板是实现代码重用的强大工具,它们允许你编写一段通用的代码,可以处理多种数据类型。函数模板的工作原理是在编译时根据传递给它们的实际参数类型生成相应的特化版本。这里有一个简单的例子,展示了如何使用函数模板实现代码重用:
#include <iostream>
// 函数模板定义
template <typename T>
T add(T a, T b) {
return a + b;
}
int main() {
// 使用整数类型调用函数模板
int int_a = 5, int_b = 3;
std::cout << "Integer sum: " << add(int_a, int_b) << std::endl;
// 使用浮点类型调用函数模板
double float_a = 5.5, float_b = 3.5;
std::cout << "Float sum: " << add(float_a, float_b) << std::endl;
// 使用字符串类型调用函数模板
std::string str_a = "Hello, ";
std::string str_b = "World!";
std::cout << "String sum: " << add(str_a, str_b) << std::endl;
return 0;
}
在这个例子中,我们定义了一个名为 add
的函数模板,它接受两个类型为 T
的参数,并返回它们的和。在 main
函数中,我们使用不同类型的参数(整数、浮点数和字符串)调用 add
函数模板。编译器会根据实际参数类型生成相应的特化版本,从而实现代码重用。
注意:在这个例子中,字符串相加实际上是将两个字符串连接在一起,而不是执行数值相加。这是因为 C++ 模板不支持内置的字符串类型相加操作。要实现字符串相加,你需要使用标准库中的 std::string
类,并手动实现相加操作。