C++ //类模板对象做函数参数 //三种方式 //1.指定传入的类型 --直接显示对象的数据类型 //2.参数模板化 --将对象中的参数变为模板进行传递 //3.整个类模板化 --将这个对象类型 模板化进行传递
1 //类模板对象做函数参数
2 //三种方式
3 //1.指定传入的类型 --直接显示对象的数据类型
4 //2.参数模板化 --将对象中的参数变为模板进行传递
5 //3.整个类模板化 --将这个对象类型 模板化进行传递
6
7
8 #include <iostream>
9 #include <string>
10 #include<fstream>
11 using namespace std;
12
13
14 template<class T1,class T2>
15 class Person
16 {
17 public:
18 Person(T1 name, T2 age)
19 {
20 this->m_Name = name;
21 this->m_Age = age;
22 }
23 void showPerson()
24 {
25 cout << "姓名: " << this->m_Name << " 年龄: " << this->m_Age << endl;
26
27 }
28
29 T1 m_Name;
30 T2 m_Age;
31 };
32
33 //三种方式
34 //1.指定传入的类型 --直接显示对象的数据类型
35
36 void printPerson1(Person<string, int>&p)
37 {
38 p.showPerson();
39 }
40
41 void test01()
42 {
43 Person<string, int>p("张三", 20);
44 printPerson1(p);
45
46
47 }
48
49
50
51
52
53 //2.参数模板化 --将对象中的参数变为模板进行传递
54 template<class T1,class T2>
55 void printPerson2(Person<T1, T2>&p)
56 {
57 p.showPerson();
58 cout << "T1的类型为: " << typeid(T1).name() << endl;
59 cout << "T2的类型为: " << typeid(T2).name() << endl;
60
61 }
62
63 void test02()
64 {
65 Person<string, int>p("李四", 222);
66 printPerson2(p);
67 }
68
69
70
71
72
73 //3.整个类模板化 --将这个对象类型 模板化进行传递
74 template<class T>
75 void printPerson3(T &p)
76 {
77 p.showPerson();
78 cout << "T的数据类型: " << typeid(T).name() << endl;
79 }
80 void test03()
81 {
82 Person<string, int>p("王五", 84);
83 printPerson3(p);
84 }
85
86
87
88 int main()
89 {
90
91 test01();
92 test02();
93 test03();
94 system("pause");
95
96 return 0;
97
98 }
C++ //类模板对象做函数参数 //三种方式 //1.指定传入的类型 --直接显示对象的数据类型 //2.参数模板化 --将对象中的参数变为模板进行传递 //3.整个类模板化 --将这个对象类型 模板化进行传递的更多相关文章
- JavaScript创建函数的三种方式
㈠函数(function) ⑴函数也是一个对象 ⑵函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码) ⑶函数中可以保存一些代码在需要的时候调用 ⑷使用typeof检查一个函数对象时,会返 ...
- Java Class类以及获取Class实例的三种方式
T - 由此 Class 对象建模的类的类型.例如,String.class 的类型是Class<String>.如果将被建模的类未知,则使用Class<?>. publi ...
- js 函数定义三种方式
<p>Js 函数定义的三种方式:</p> <br> <p>方式一:function</p> <script type="te ...
- JS创建对象,数组,函数的三种方式
害怕自己忘记,简单总结一下 创建对象的3种方法 ①:创建一个空对象 var obj = {}; ②:对象字面量 var obj = { name: "Tom", age: 27 ...
- js对象实例化的常见三种方式
三种常见模式:工厂模式,构造函数模式,原型模式 <span style="font-size:18px;"><!doctype html> <html ...
- Js构造对象-添加方法的三种方式
Js构造函数添加方法有多种方案,来看一个混合方式构造函数的例子:申明person构造函数,有两个属性,name,qq.在原型上添加方法showname.这是最常用的方法. <script> ...
- javaScript定义函数的三种方式&变量的作用域
一.函数定义 方式1.普通方式定义函数 function 函数名(參数n){ 函数体 } function add(a,b){ return a+b; } 方式2.直接量定义函数 var 函数名=fu ...
- JS函数的三种方式
函数,一段能够自动完成某些功能的代码块,函数的出现,既解决了重复使用重一功能的需求,又可以避免代码的臃肿性. 使用函数有两个要求:必须调用后才可以执行;函数名不要和关键字以及系统函数相同; 函数主要有 ...
- JS中创建函数的三种方式及区别
1.函数声明 function sum1(n1,n2){ return n1+n2; }; 2.函数表达式,又叫函数字面量 var sum2=function(n1,n2){ return n1+n2 ...
- JavaScript定义函数的三种方式
直接定义函数 function f1(x,y){ return x+y; } 使用Function构造函数 var f2=new Function("x","y" ...
随机推荐
- uni-app快速导入自己需要的插件
在uni-app中快速导入自己需要的插件 在uni-app的官网上;找到自己需要的插件: 然后点击右侧顶部的[使用HX导入]这一步的前提是你必须要用自己的账好登录: 然后选择你要导入哪一个项目 然后就 ...
- Docker系列教程01--简介
Docker 入门教程 作者: 阮一峰 日期: 2018年2月 9日 2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业. 但是,许多人并不清楚 Docker 到底是什么, ...
- Java中的基本数据类型和包装类型的这些知识,你都知道吗?
Java中的基本数据类型和包装类型 Java 中的基本数据按类型可以分为四大类:布尔型.整数型.浮点型.字符型: 这四大类包含 8 种基本数据类型. 布尔型:boolean 整数型:byte.shor ...
- [1] 以逆向的角度来看流程控制语句——if
[1] 以逆向的角度来看流程控制语句--if 1. if语句(单分支) if语句转换的条件跳转指令与if语句的判断结果是相反的, 因为C语言是根据代码行的位置决定编译后二进制代码地址高低的,即低行 ...
- Unity Editor开发中查找属性的两种写法对比
从2017开始,在editor脚本中查找属性是这样写的 var m_Script = serializedObject.FindProperty("m_Script"); Seri ...
- socket编程 [补档-2023-07-10]
Linux网络编程 1.socket编程 socket是一种通信机制,用于在网络中不同计算机之间进行数据传输,当然也可用用于进程间通信.在linux中,有文件描述符这么个东西,我们可以通过socket ...
- Protobuf之proto基础语法
目录 1.说明 2.字段类型 3.字段规则 4.字段编号 5.注释 6.类型 6.1.message 6.2.service 7.枚举enum 8.保留字段 9.import 9.1.protoc指令 ...
- React框架运行机制
React框架运行主流程 1.JSX是JS语言的扩展,被babel编译后,会转换成React.creatElement(),这个方法返回的是一个虚拟DOM. 2.将虚拟DOM渲染到真实DOM的方法是R ...
- Java开发学习(四十七)----MyBatisPlus删除语句之多记录操作
1.多记录操作 先来看下问题: 之前添加了很多商品到购物车,过了几天发现这些东西又不想要了,该怎么办呢? 很简单删除掉,但是一个个删除的话还是比较慢和费事的,所以一般会给用户一个批量操作,也就是前面有 ...
- vue 导出多页pdf, window.print()实现
如果你对分页打印没思路,而网上的现成方案又不适合,不妨进来看看,也许会对你有帮助. 由于工作环境是局域网,对于插件的安装有限制,所以排除了jspdf + html2canvas的实现方式:采用wind ...