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

c++中的模板

c++中的模板

在c语言中对于不同类型的函数要定义很多次,在c++可以一个函数的重复定义还是太麻烦了,

所以有了模板。

类似于中国的活字印刷术,可以定义一个模板,实现一个函数多用。如下面的代码,

定义一个交换的模板,T会自动生成为对应的类型。

#include<iostream> #include<string> using namespace std; //是函数模板 template<class T>//可以有多个,编译器帮你生成 void Swap(T&x,T&y){ T tmp =x; x=y; y=tmp; } //可以代替简单函数的多次定义 //void Swap(int x,int y){ // int tmp =x; // x=y; // y=tmp; //} //void Swap(float x,float y){ // float tmp =x; // x=y; // y=tmp; //} int main(){ return 0; }

模板的声明

  1. 必须以template关键字开头。
  2. 必须包含用尖括号< >括起来的模板参数列表。
  3. 每个类型模板参数前都必须有classtypename关键字。这两个关键字在此处可以互换使用,并且可以在同一个模板参数列表中混合使用。
  4. 多个参数之间用逗号,分隔。

可以针对类和函数去调用模板;

template<class T> T* fun1(int n){ return new T[n]; } //创建了一个自定义数值模板,因为不知道到底是什么类型,所以在使用时要实例化 //fun1<int>(10)

相对于c语言的#define可以同时创建不同类型的自定义类。

http://www.jsqmd.com/news/632224/

相关文章:

  • 2026自吸磁力泵技术解析:防腐化工泵/防腐磁力泵/不锈钢化工泵/不锈钢磁力泵/安徽化工泵/安徽磁力泵/氟合金磁力泵/选择指南 - 优质品牌商家
  • TCP/IP协议详解:高性能服务器开发的底层基石寻
  • 新手入门音响控台培训调音台培训专业迈达斯培训怎么选
  • 单调队列优化多重背包 学习笔记 详解曝
  • 自动导引车(AGV)与自主移动机器人(AMR)控制系统的 C# 开源封装库诠
  • 非线性信号的时间尺度调整
  • 【大模型工程化监控黄金法则】:20年SRE专家亲授5类告警阈值设定铁律,避开97%的误报陷阱
  • 记录复现多模态大模型论文OPERA的一周工作()碳
  • MySQL锁机制:从全局锁到行级锁的深度解读赡
  • Gerrit代码Review高效协作指南:如何利用Topic和CI加速团队开发
  • AI时代,.NET开发者的生存危机还是能力外挂?馅
  • Java与PHP结合的优势第二篇章
  • 工业物联网实时分析的“秒级”革命:拆解DolphinDB如何攻克海量数据下的预警与决策难题腿
  • Z-Image-Turbo部署全攻略:从零开始,快速搭建个人AI绘画站
  • 探秘Cuk升降压电路:如何实现低纹波与高隔离的电源设计
  • 协程执行顺序与作用域解析
  • testserver.cc测试例子解读
  • 手把手教你解决PyTorch的nn、optim模块导入失败:从环境配置到文件命名的避坑全指南
  • 嵌入式无锁任务队列:裸机与RTOS下的零内存分配串行化方案
  • SITS2026多语言支持白皮书核心解密(覆盖197种语言的Tokenization重构工程)
  • MelonLoader完整教程:5分钟学会Unity游戏模组加载终极方案
  • ESP32/ESP8266轻量Toggl时间条目API客户端
  • qemu虚拟机复制
  • 【GUI-Agent】阶跃星辰 GUI-MCP 解读---()---执行层链
  • 告别阻塞!用 PHP TrueAsync 实现 PHP 脚本提速 倍矢
  • Rails 7中的表单验证与错误处理
  • PHP源码是否依赖特定芯片组_Intel与AMD平台差异【操作】
  • ROS2深度相机标定实战:从驱动配置到结果应用全解析
  • 用 AI Coding 工具生成 万字奇幻世界设定的实践记录惩
  • 深入解析C++ I/O流控制标志:ios_base与ios命名空间下的模式对比