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
類,并手動實現相加操作。