【C++类模板对象做函数参数】

类模板实例化出的对象,向函数传参的方式

一共有三种传入方式:

  1. 指定传入的类型 — 直接显示对象的数据类型
  2. 参数模板化 — 将对象中的参数变为模板进行传递
  3. 整个类模板化 — 将这个对象类型 模板化进行传递

总结:比较广泛使用的是第一种,指定类型传入

#include<iostream>
using namespace std;//类模板
template<class Nametype,class agetype = int>
class Person
{
public:Person(Nametype name, agetype age){this->mname = name;this->mage = age;}Nametype mname;agetype mage;void showPerson(){cout << "name: " << mname << "age: " << mage << endl;}
};//1 指定传入的类型void printPerson1(Person<string, int>& p)
{p.showPerson();
}void test01()
{Person<string, int>p("黄刚", 21);printPerson1(p);
}//2.参数模板化template<class T1,class T2>
void printPerson2(Person<T1, T2>& p)
{p.showPerson();cout << "T1的类型为: "<<typeid(T1).name() << endl;//T1的类型为: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >cout << "T2的类型为: " << typeid(T2).name() << endl;//T2的类型为: int}
void test02()
{Person<string, int>p("黄刚", 100);printPerson2(p);
}//3.整个类模板化template<class T3>
void printPerson3(T3& p)
{cout << "T3的类型为: "<<typeid(T3).name() << endl;//T3的类型为: class Person<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int>p.showPerson();
}
void test03()
{Person<string, int>p("黄刚", 100);printPerson3(p);
}int main()
{test01();test02();test03();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/215002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络(三)

&#xff08;十一&#xff09;路由算法 A、路由算法分类 动态路由和静态路由 静态路由&#xff1a;人工配制&#xff0c;路由信息更新慢&#xff0c;优先级高。这种在实际网络中要投入成本大&#xff0c;准确但是可行性弱。 动态路由&#xff1a;路由更新快&#xff0c;自动…

12/11

完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和密码不匹配&#xf…

css的Grid布局

1.简单布局 .grid { display: grid; grid-template-columns: 1fr 2fr 1fr; 布局样式 column-gap: 24px; 列间距 row-gap: 24px; 行间距 } 2.排列布局 center垂直方向居中对其 end靠下对齐 3.水平方向对齐 center居中 end靠右对齐 space-between两段对齐 4.对…

【SpringBoot】Spring Boot 单体应用升级 Spring Cloud 微服务

Spring Cloud 是在 Spring Boot 之上构建的一套微服务生态体系&#xff0c;包括服务发现、配置中心、限流降级、分布式事务、异步消息等&#xff0c;因此通过增加依赖、注解等简单的四步即可完成 Spring Boot 应用到 Spring Cloud 升级。 Spring Boot 应用升级为 Spring Cloud…

插入排序和希尔排序

目录 前言 一.插入排序 1.思想 2.实现 3.特点 二,希尔排序 1.思想 2,实现 3.特点 前言 排序算法是计算机科学中的基础工具之一&#xff0c;对于数据处理和算法设计有着深远的影响。了解不同排序算法的特性和适用场景&#xff0c;能够帮助程序员在特定情况下选择最合适的…

如何使用玻璃材质制作3D钻石模型

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…

Spark与PySpark(1.概述、框架、模块)

目录 1.Spark 概念 2. Hadoop和Spark的对比 3. Spark特点 3.1 运行速度快 3.2 简单易用 3.3 通用性强 3.4 可以允许运行在很多地方 4. Spark框架模块 4.1 Spark Core 4.2 SparkSQL 4.3 SparkStreaming 4.4 MLlib 4.5 GraphX 5. Spark的运行模式 5.1 本地模式(单机) Local运行模…

初识Vue 解决vue在启动时生成的提示

让我为大家简单介绍一下吧&#xff01; Vue是一套用于构建用户界面的渐进式javaScript框架 当我们引入vue.js后 <script src"../js/vue.js"></script>我们发现&#xff0c;当我们打开网页时&#xff0c;控制台会出现以下内容 那我们该怎么解决呢&…

【设计模式--结构型--组合模式】

设计模式--结构型--组合模式 组合模式定义结构案例组合模式的分类优点使用场景 组合模式 定义 又称部分整体模式&#xff0c;是用于把一组相似的对象当作一个单一的对象。组合模式依据树型结构来组合对象&#xff0c;用来表示部分以及整体层次&#xff0c;这种类型的设计模式…

新增模板中心和系统设置模块,支持飞书平台对接,DataEase开源数据可视化分析平台v2.1.0发布

这一版本的功能升级包括&#xff1a;新增模板中心&#xff0c;用户可以通过模板中心的模板快速创建仪表板和数据大屏&#xff1b;新增“系统设置”功能模块&#xff0c;该模块包含系统参数、认证设置、嵌入式管理、平台对接四个子模块。在“系统参数”子模块中&#xff0c;用户…

代码上传的gitee平台

1.首先我们访问工作台 - Gitee.com进行注册和登录 2.我们创建一个仓库&#xff1a; 3.在本地创建我们的项目 在这文件夹里面我们打开git bush,执行 一下操作&#xff1a; git init &#xff1a;初始化仓库 git status&#xff1a;检查状态 git add . &#xff1a;将当前文件…

ubuntu 命令行安装 conda

安装包地址&#xff1a; Index of / 找到对应的版本&#xff0c;右键点复制链接 wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.shbash Anaconda3-2023.09-0-Linux-x86_64.sh https://linzhji.blog.csdn.net/article/details/126530244

BERT大模型:英语NLP的里程碑

BERT的诞生与重要性 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;大模型标志着自然语言处理&#xff08;NLP&#xff09;领域的一个重要转折点。作为首个利用掩蔽语言模型&#xff08;MLM&#xff09;在英语语言上进行预训练的模型&…

Keepalived+Nginx实现高可用(上)

一、背景与简介 为了服务的高可用性&#xff0c;避免单点故障问题&#xff0c;通常我们使用"冗余设计思想"进行架构设计。冗余设计思想&#xff0c;本质就是将同一个应用或者服务放置在多台不同的服务器上[鸡蛋不放在同一个篮子里]&#xff0c;这样减少整体服务宕机的…

ACWing week 3(C语言) 725.完全数

一个整数&#xff0c;除了本身以外的其他所有约数的和如果等于该数&#xff0c;那么我们就称这个整数为完全数。 例如&#xff0c;66 就是一个完全数&#xff0c;因为它的除了本身以外的其他约数的和为 1236 现在&#xff0c;给定你 N 个整数&#xff0c;请你依次判断这些数是…

ESP32网络开发实例-搭建ESP32固件远程升级服务器

搭建ESP32固件远程升级服务器 文章目录 搭建ESP32固件远程升级服务器1、ESP32设备自动升级流程2、软件准备3、硬件准备4、代码实现4.1 固件升级服务器代码实现4.2 基础固件代码4.3 新固件代码实现我们在前面的文章中,已经实现了OTA方式升级固件的两种方式:在Arduino IDE 中升…

数据结构与算法-动态规划-机器人达到指定位置方法数

机器人达到指定位置方法数 来自左程云老师书中的一道题 【题目】 假设有排成一行的 N 个位置&#xff0c;记为 1~N&#xff0c;N 一定大于或等于 2。开始时机器人在其中的 M 位置上&#xff08;M 一定是 1&#xff5e;N 中的一个&#xff09;&#xff0c;机器人可以往左走或…

基于大语言模型的复杂任务认知推理算法CogTree

近日&#xff0c;阿里云人工智能平台PAI与华东师范大学张伟教授团队合作在自然语言处理顶级会议EMNLP2023上发表了基于认知理论所衍生的CogTree认知树生成式语言模型。通过两个系统&#xff1a;直觉系统和反思系统来模仿人类产生认知的过程。直觉系统负责产生原始问题的多个分解…

10 # 类:继承和成员修饰符

类的基本实现 类的成员属性都是实例属性&#xff0c;而不是原型属性&#xff0c;类的成员方法都是原型方法。 class Dog {constructor(name: string) {this.name name;}name: string;run() {} }console.log(Dog.prototype); let dog new Dog("wangwang"); consol…

知识笔记(五十四)———mysql比较varchar值大小_Mysql varchar大小长度问题

1、限制规则 字段的限制在字段定义的时候有以下规则&#xff1a; a) 存储限制 varchar 字段是将实际内容单独存储在聚簇索引之外&#xff0c;内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节)&#xff0c;因此最大长度不能超过65535。 b) 编码长度限制 字符类…