C++基础-模板
2022/5/2 20:14:06
本文主要是介绍C++基础-模板,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
模板(不深挖哦,是最最浅的)
基本概念
模板就是建立通用的模具,大大提高复用性(类型参数化)
- 模板不能直接使用,它是一个框架
- 模板的通用不是万能的
函数模板
- C++另一种编程思想为泛型编程,主要是利用模板技术
语法
template<typename T> //声明模板<typename 数据类型名字> 函数声明或定义
- template:声明创建模板
- typename:表示T是一种数据类型
- T:一个数据类型的名字
例子
#include<iostream> using namespace std; void swapInt(int &a,int &b){ //普通的整型交换 int c; c = a; a = b; b = c; } template<typename T> //模板-整型交换 void mySwap(T &a,T &b){ T temp; temp = a; a = b; b =temp; } void test01(){ int a = 10; int b = 20; //两种方法来使用函数模板 //1.自动类型推导 mySwap(a,b); cout << a << b << endl; cout << "=====================" << endl; //2.显式指定类型 mySwap<int>(a,b); cout << a << b << endl; } int main(){ test01(); return 0; }
类模板
建立一个通用类,类中的成员 数据类型可以不具体规定,用一个虚拟的类型来代表
语法
template<typename T1,typename T2...> 类
例子
#include<iostream> #include<cstring> using namespace std; template<typename NameType,typename AgeType> // 类型一 类型二 class Person{ friend void test01(); private: NameType m_Name; //类型一 类型一的对象 AgeType m_Age; //类型二 类型二的对象 public: Person(NameType name,AgeType age){ m_Name = name; m_Age = age; } }; void test01(){ Person<string,int>p("Tom",18); //指明类型一是string;类型二是int cout << p.m_Name << '\t' << p.m_Age << endl; } int main(int argc, char** argv) { test01(); return 0; }
这篇关于C++基础-模板的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升
- 2024-05-08代码报错不用愁,CodeGeeX一键完成代码修复、错误解释的功能上线了!