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

c++学习系列----005.c++模板(类模板)

c++ 类模板

文章目录

  • c++ 类模板
    • C++ 类模板概念
    • 类模板语法结构:
    • 示例:泛型容器类
    • 类模板的优势
    • 小结

C++ 类模板概念

类模板是 C++ 提供的一种泛型编程机制,用于编写可以处理多种数据类型的类,而不用为每种类型都写一个类。

模板 = 写一次代码,适配多种类型


类模板语法结构:

template <typename T>
class MyClass {
public:
    T value;
    MyClass(T v) : value(v) {}
    void printInfo() {
        std::cout << "Value: " << value << std::endl;
    }
};

这里 T 就是一个类型参数,在使用时可以替换为 intfloatstd::string 等。


示例:泛型容器类

#include <iostream>
#include <string>

template <typename T>
class Box {
public:
    Box(T item) : content(item) {}

    void show() {
        std::cout << "Box contains: " << content << std::endl;
    }

private:
    T content;
};

int main() {
    Box<int> intBox(123);
    Box<std::string> strBox("Hello, Template!");

    intBox.show();     // 终端会输出:Box contains: 123
    strBox.show();     // 终端会输出:Box contains: Hello, Template!

    return 0;
}

类模板的优势

优势说明
类型通用不再为每种类型写重复代码
更安全编译期类型检查,避免手动 void*
易扩展只需扩展接口即可自动支持新类型

小结

  • template <typename T>:声明类是模板类,T 是类型参数
  • 使用时:Box<int>, Box<std::string> 这样的实例化
  • 类模板可以有多个类型参数:template <typename T, typename U>
http://www.dtcms.com/a/98279.html

相关文章:

  • 人工智能在自然语言处理中的应用:从理论到实践的探索
  • 在一个scss文件中定义变量,在另一个scss文件中使用
  • 【Linux】——文件(上)
  • 缓存使用纪要
  • mcp 接freecad画齿轮
  • 《Python Web网站部署应知应会》No4:基于Flask的调用AI大模型的高性能博客网站的设计思路和实战(上)
  • 阅读分析Linux0.11 /boot/bootsect.s
  • 显示文献是几区的免费科研插件easyScholar
  • 基于盛科CTC7132交换机核心模块
  • SpringBoot (一) 自动配置原理
  • 字典翻转教学
  • 买卖股票的最佳时机(121)
  • Kubernetes对象基础操作
  • 现代几何风海报标签徽标logo设计psai衬线英文字体安装包 Myfonts – Nexa Serif Font Family
  • 精通React JS中的API调用:示例指南
  • RAG基建之PDF解析的“无OCR”魔法之旅
  • ESP-01模块连接手机热点问题及解决方法
  • nacos 外置mysql数据库操作(docker 环境)
  • 如何迁移AxureCloud到新服务器?
  • Jenkins插件安装失败如何解决
  • 惠普(HP)和联想(Lenovo)作为全球两大电脑品牌,并不是简单的“拼接电脑”
  • Vue 中render函数的作用,如何使用它进行更灵活的组件渲染?
  • 代码随想录算法训练营第四十六天|回文子串专题: 647. 回文子串、516.最长回文子序列
  • DSP+AI综合应用案例1——三种波形识别(预告)
  • java网盘项目 目前 文件有分享表 文件夹也要创建分享表吗
  • 伯恩茅斯 vs 曼城
  • Java 输入流到输出流
  • 开发过程中需要安装的浏览器插件
  • 【学Rust写CAD】17 通用2D仿射变换矩阵结构体(matrix/generic.rs)
  • keil中文注释出现乱码怎么解决