找回密码
 立即注册
首页 业界区 业界 c++ 模板

c++ 模板

驶桐柢 2025-6-16 22:38:56
一、什么是模板(Template)

模板是 C++ 支持的泛型编程机制,可以用来编写与类型无关的代码,实现代码的复用。编译器根据调用时提供的类型参数生成对应版本代码,称为模板实例化
二、函数模板(Function Template)


  • 模板函数在编译时根据传入参数类型自动生成对应函数代码(实例化),普通函数是编写时确定类型。
  • 模板函数可以避免为不同类型写多个重载版本。
语法
  1. template<typename T>
  2. 返回类型 函数名(参数列表) {
  3.     // 使用类型T的代码
  4. }
复制代码
或者:
  1. template<typename T>
  2. 返回类型 函数名(参数列表) {
  3.     // 使用类型T的代码
  4. }
复制代码
typename 和 class 在这里是等价的。
示例:通用交换函数
  1. template<typename T>
  2. void mySwap(T& a, T& b) {
  3.     T temp = a;
  4.     a = b;
  5.     b = temp;
  6. }
复制代码
使用:
  1. int x = 1, y = 2;
  2. mySwap(x, y);  // 自动推导T为int
  3. double a = 1.1, b = 2.2;
  4. mySwap(a, b);  // 自动推导T为double
复制代码
三、类模板(Class Template)

语法
  1. template<typename T>
  2. class ClassName {
  3. public:
  4.     T data;
  5.     void print();
  6. };
复制代码
[code]templateclass MyClass {public:    void show();};templatevoid MyClass::show() {    std::cout
您需要登录后才可以回帖 登录 | 立即注册