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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)