驶桐柢 发表于 2025-6-16 22:38:56

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]
查看完整版本: c++ 模板