C++ 函數(shù)模板是實(shí)現(xiàn)代碼重用的強(qiáng)大工具,它們?cè)试S你編寫(xiě)一段通用的代碼,可以處理多種數(shù)據(jù)類型。函數(shù)模板的工作原理是在編譯時(shí)根據(jù)傳遞給它們的實(shí)際參數(shù)類型生成相應(yīng)的特化版本。這里有一個(gè)簡(jiǎn)單的例子,展示了如何使用函數(shù)模板實(shí)現(xiàn)代碼重用:
#include <iostream>
// 函數(shù)模板定義
template <typename T>
T add(T a, T b) {
return a + b;
}
int main() {
// 使用整數(shù)類型調(diào)用函數(shù)模板
int int_a = 5, int_b = 3;
std::cout << "Integer sum: " << add(int_a, int_b) << std::endl;
// 使用浮點(diǎn)類型調(diào)用函數(shù)模板
double float_a = 5.5, float_b = 3.5;
std::cout << "Float sum: " << add(float_a, float_b) << std::endl;
// 使用字符串類型調(diào)用函數(shù)模板
std::string str_a = "Hello, ";
std::string str_b = "World!";
std::cout << "String sum: " << add(str_a, str_b) << std::endl;
return 0;
}
在這個(gè)例子中,我們定義了一個(gè)名為 add
的函數(shù)模板,它接受兩個(gè)類型為 T
的參數(shù),并返回它們的和。在 main
函數(shù)中,我們使用不同類型的參數(shù)(整數(shù)、浮點(diǎn)數(shù)和字符串)調(diào)用 add
函數(shù)模板。編譯器會(huì)根據(jù)實(shí)際參數(shù)類型生成相應(yīng)的特化版本,從而實(shí)現(xiàn)代碼重用。
注意:在這個(gè)例子中,字符串相加實(shí)際上是將兩個(gè)字符串連接在一起,而不是執(zhí)行數(shù)值相加。這是因?yàn)?C++ 模板不支持內(nèi)置的字符串類型相加操作。要實(shí)現(xiàn)字符串相加,你需要使用標(biāo)準(zhǔn)庫(kù)中的 std::string
類,并手動(dòng)實(shí)現(xiàn)相加操作。