当前位置: 首页 > 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 物理模拟 与 触发检测
  • 通信原理-非线性调制
  • 遍体鳞伤就是击不倒,这是国米老男孩最后的倔强
  • 购车补贴、“谷子”消费、特色产品,这些活动亮相五五购物节
  • 城市更新·简报│中央财政支持城市更新,倾斜超大特大城市
  • 牛市早报|今年第二批810亿元超长期特别国债资金下达,支持消费品以旧换新
  • 中办、国办印发《安全生产考核巡查办法》
  • 习近平对辽宁辽阳市白塔区一饭店火灾事故作出重要指示