类模板对象做函数参数
1.C++函数模板案例2.普通函数与函数模板调用规则3.普通函数与函数模板调用规则24.模板的局限性5.类模板6.类模板与函数模板的区别7.类模板中成员函数创建时机
8.类模板对象做函数参数
9.类模板与继承10.类模板成员函数类外实现11.类模板分文件编写12.类模板与友元13.类模板案例14.STL初识15.容器算法迭代器初识16.Vector中存放自定义数据类型17.Vector容器镶套容器18.STL---常用容器19.string赋值操作20.string字符串拼接21.string查找和替换22.string字符串比较/字符存取/插入和删除/子串获取23.vector容器/构造函数/赋值操作/容量和大小/插入和删除/数据存储/互换容器/预留空间24.deque容器/构造函数/赋值操作/大小操作/插入和删除/数据存取/排序25.案例--评委打分26.力扣---两数之和---unordered_map-STL容器学习目标:
类模板实例化出的对象,向函数传参的方式
一共有三种传入方式:
1.指定传入的类型=直接显示对象的数据类型
2.参数模板化=将对象中的参数变为模板进行传递
3.整个类模板化===将这个对象类型 模板化进行传递
#include <iostream> using namespace std; #include <string> //类模板对象做函数参数 template<class T1,class T2> class Person { public: Person(T1 name,T2 age) { this->m_Name=name; this->m_Age=age; } void showPerson() { cout<<"姓名:"<<this->m_Name<<"年龄:"<<this->m_Age<<endl; } T1 m_Name; T2 m_Age; }; //1.指定传入类型 void printPerson1(Person<string,int>&p)//类模板对象做函数参数 { p.showPerson(); } void test01() { Person<string,int>p("孙悟空",100); printPerson1(p); } //2.参数模板化 template<class T1,class T2> void printPerson2(Person<T1,T2>&p) { p.showPerson(); cout<<"T1的类型为:"<<typeid(T1).name()<<endl; cout<<"T2的类型为:"<<typeid(T2).name()<<endl; } void test02() { Person<string,int>p("猪八戒",99); printPerson2(p); } //3.整个类模板化 template<class T> void printPerson3(T &p) { p.showPerson(); cout<<"T的数据类型:"<<typeid(T).name()<<endl; } void test03() { Person<string,int>p("唐僧",30); printPerson3(p); } int main() { //test01(); //test02(); test03(); return 0; }
总结:
通过类模板创建的对象,可以有三种方式向函数中进行传参
使用比较广泛是第一种:指定传入类型
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)