c++ 模板
一、什么是模板(Template)模板是 C++ 支持的泛型编程机制,可以用来编写与类型无关的代码,实现代码的复用。编译器根据调用时提供的类型参数生成对应版本代码,称为模板实例化。
二、函数模板(Function Template)
[*]模板函数在编译时根据传入参数类型自动生成对应函数代码(实例化),普通函数是编写时确定类型。
[*]模板函数可以避免为不同类型写多个重载版本。
语法
template<typename T>
返回类型 函数名(参数列表) {
// 使用类型T的代码
}或者:
template<typename T>
返回类型 函数名(参数列表) {
// 使用类型T的代码
}typename 和 class 在这里是等价的。
示例:通用交换函数
template<typename T>
void mySwap(T& a, T& b) {
T temp = a;
a = b;
b = temp;
}使用:
int x = 1, y = 2;
mySwap(x, y);// 自动推导T为int
double a = 1.1, b = 2.2;
mySwap(a, b);// 自动推导T为double三、类模板(Class Template)
语法
template<typename T>
class ClassName {
public:
T data;
void print();
};templateclass MyClass {public: void show();};templatevoid MyClass::show() { std::cout
页:
[1]