c++函数模板和运行机制
C++_templatec++提供了函数模板(function template.)所谓函数模板,实际上是建立一个通用函数,其函数范例和形参范例不具体订定,用一个假造的范例来代表。这个通用函数就成为函数模板。凡是函数体相同的函数都可以用这个模板代替,不必界说多个函数,只需在模板中界说一次即可。在调用函数时系统会根据实参的范例来取代模板中的假造范例,从而实现不同函数的功能。
[*]c++提供两种模板机制:函数模板和类模板
[*]类属:范例参数化,又称参数模板
函数模板
函数模板是 C++ 中的一种特性,它允许你编写一个通用的函数,可以或许处理不同范例的数据,而不需要针对每种范例编写多个函数。通过函数模板,你可以编写一次代码,然后使用不同的数据范例来实例化该函数,从而生成针对不同数据范例的具体函数。
函数模板可以处理各种不同的数据范例,只要这些数据范例支持所执行的操作。例如,你可以使用函数模板来编写一个通用的排序函数,它可以对整数、浮点数、字符串等举行排序,而无需为每种范例编写一个特定的排序函数。
假设现在有几个类似函数:
void SwapInt(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
void SwapChar(char& a, char& b) {
char temp = a;
a = b;
b = temp;
}如果要交换double,bool等其他范例时,需要重复写很多个功能相同的函数。写的函数越多,当交换逻辑发生厘革的时候,全部的函数都需要修改,无形当中增加了代码的维护难度。
templatevoid Swap(T& a, T& b) { T temp = a; a = b; b = temp;}void test() { int a = 10; int b = 20; cout
页:
[1]