当前位置: 首页 > news >正文

聊聊类模板

我们来聊聊类模板,从基础到实际例子,让你更容易理解。

什么是类模板?

类模板是一种模板,允许我们定义一个可以处理任意数据类型的类。简单来说,就是我们可以编写一个类的“蓝图”,然后在需要的时候使用不同的数据类型来实例化这个类。这样可以避免重复代码,并且使得代码更加灵活。

比如说,汽车的类模板

假设我们打算设计一个汽车类。每辆车都有几个共同特征,比如品牌、型号和速度。但不同的车可以有不同的颜色、发动机类型等。我们可以使用类模板来处理这些不同的特征。

1. 定义类模板

下面是一个简单的类模板,表示一种“汽车”。

template<typename T>
class Car {
private:
    T brand;   // 品牌
    T model;   // 型号
    int speed; // 速度

public:
    // 构造函数
    Car(T b, T m, int s) : brand(b), model(m), speed(s) {}

    // 打印汽车信息
    void printInfo() {
        std::cout << "品牌: " << brand << ", 型号: " << model << ", 速度: " << speed << " km/h" << std::endl;
    }
};
2. 使用类模板

现在,我们可以使用这个Car类模板创建不同类型的汽车。例如:

int main() {
    Car<std::string> myCar("Toyota", "Corolla", 180); // 使用字符串类型
    myCar.printInfo(); // 输出: 品牌: Toyota, 型号: Corolla, 速度: 180 km/h

    Car<const char*> anotherCar("Honda", "Civic", 200); // 使用C风格字符串
    anotherCar.printInfo(); // 输出: 品牌: Honda, 型号: Civic, 速度: 200 km/h

    return 0;
}

总结

通过这个例子,你可以看到,类模板让我们能够创建一个通用的“汽车”类,而不需要因为不同的品牌或型号而定义多个类。这是代码重用和灵活性的一个好例子。

相关文章:

  • 波束形成(BF)从算法仿真到工程源码实现-第九节-延迟相减波束形成(delay sub)
  • 【Vue】v-if和v-show的区别
  • 鸿蒙开发-注解
  • 实时语音交互数字人VideoChat,可自定义形象与音色,支持音色克隆,首包延迟低至3s
  • WebRTC实时通话EasyRTC嵌入式音视频通信SDK,构建智慧医疗远程会诊高效方案
  • 【C++进阶六】list模拟实现
  • ShareX:多功能截图与录屏工具
  • AD917X系列JESD204B MODE7使用
  • C++23 新特性:auto(x) 和 auto{x} 的衰变复制
  • swift菜鸟教程15-18(枚举,结构体,类,属性)
  • LINUX基础 [四] - Linux工具
  • uniapp自定义tabbar,根据角色动态显示不同tabbar,无闪动问题
  • 微服务架构介绍
  • 搭建springboot框架建立项目流程(后端开发)
  • 60. 评论日记
  • 深入理解Java中的队列:核心操作、实现与应用
  • Linux网络管理
  • SAP系统中的借货
  • UE5 物理模拟 与 触发检测
  • 通信原理-非线性调制
  • 马上评丨冒名顶替上中专,为何一瞒就是30多年?
  • 广州远洋宾馆负一层配电房发生火情:明火已扑灭,无人员伤亡
  • 长征十梦舟揽月稳步推进
  • 不朽诗篇的现代重生,意大利音乐剧《神曲》将来华15城巡演
  • 日媒:日本公明党党首将访华,并携带石破茂亲笔信
  • 特朗普“炮轰”美联储带崩美股!道指跌超900点,黄金再创新高