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.整个类模板化 --将这个对象类型 模板化进行传递的更多相关文章

  1. JavaScript创建函数的三种方式

    ㈠函数(function) ⑴函数也是一个对象 ⑵函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码) ⑶函数中可以保存一些代码在需要的时候调用 ⑷使用typeof检查一个函数对象时,会返 ...

  2. Java Class类以及获取Class实例的三种方式

    T - 由此 Class 对象建模的类的类型.例如,String.class 的类型是Class<String>.如果将被建模的类未知,则使用Class<?>.   publi ...

  3. js 函数定义三种方式

    <p>Js 函数定义的三种方式:</p> <br> <p>方式一:function</p> <script type="te ...

  4. JS创建对象,数组,函数的三种方式

    害怕自己忘记,简单总结一下 创建对象的3种方法 ①:创建一个空对象   var obj = {}; ②:对象字面量 var obj = { name: "Tom", age: 27 ...

  5. js对象实例化的常见三种方式

    三种常见模式:工厂模式,构造函数模式,原型模式 <span style="font-size:18px;"><!doctype html> <html ...

  6. Js构造对象-添加方法的三种方式

    Js构造函数添加方法有多种方案,来看一个混合方式构造函数的例子:申明person构造函数,有两个属性,name,qq.在原型上添加方法showname.这是最常用的方法. <script> ...

  7. javaScript定义函数的三种方式&amp;变量的作用域

    一.函数定义 方式1.普通方式定义函数 function 函数名(參数n){ 函数体 } function add(a,b){ return a+b; } 方式2.直接量定义函数 var 函数名=fu ...

  8. JS函数的三种方式

    函数,一段能够自动完成某些功能的代码块,函数的出现,既解决了重复使用重一功能的需求,又可以避免代码的臃肿性. 使用函数有两个要求:必须调用后才可以执行;函数名不要和关键字以及系统函数相同; 函数主要有 ...

  9. JS中创建函数的三种方式及区别

    1.函数声明 function sum1(n1,n2){ return n1+n2; }; 2.函数表达式,又叫函数字面量 var sum2=function(n1,n2){ return n1+n2 ...

  10. JavaScript定义函数的三种方式

    直接定义函数 function f1(x,y){ return x+y; } 使用Function构造函数 var f2=new Function("x","y" ...

随机推荐

  1. 在K8S中,Pod生命周期包含哪些?

    在Kubernetes(简称K8s)中,Pod的生命周期经历了一系列状态变化.以下是Pod可能处于的一些主要状态: Pending: 当创建一个Pod时,它首先会进入Pending状态.这个状态下,K ...

  2. String 中的Trim

    Trim 切除首尾指定字符 var newStr=""; char[] trimChars={'@','#','$',' '}; string strC="@Hello# ...

  3. python代码的tab和空格缩进互转

    代码规范 在我们项目中python代码使用tab缩进,并统一大家的编辑器设置. 如果同一个python文件中即有空格又有tab缩进,那么运行此文件会报错. 关于使用空格还是tab,这里就不展开讨论了, ...

  4. python从新手到安装指南

    说到python我是跟着官方文档自学入门,本文适用于windows 操作系统,基于Inter和amd的CPU(涵盖市面80%的电脑) 下载和安装python 对于window操作系统的初学者,进入 p ...

  5. 设计模式学习-使用go实现状态模式

    状态模式 定义 优点 缺点 适用范围 代码实现 参考 状态模式 定义 状态模式(state):当一个条件的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是当控制一个对 ...

  6. HT UI 5.0,前端组件图扑是认真的

    为顺应数字时代的不断发展,图扑 HT UI 5.0 在原有功能强大的界面组件库的基础上进行了全面升级,融入了更先进的技术.创新的设计理念以及更加智能的功能.HT UI 5.0 使用户体验更为直观.个性 ...

  7. python排序之快速排序

    快速排序 快速排序是比较常用的一种排序方式,通过递归的方法进行排序 首先使用递归方式我们先要解决两个问题:1找到基准条件 2找到递归条件 基线条件为数组为空或只包含一个元素.在这种情况下,只需原样返回 ...

  8. java线程池实现多任务并发执行

    Java线程池实现多任务并发执行 1️⃣ 创建一些任务来落地多任务并发执行 每一个数组里面的数据可以看成任务,或者是需要并发的业务接口, 数组与数组之间,可以看作为他们之间有血缘关系,简单来说就是: ...

  9. 小知识:NFS卡死问题处理

    现象: df -h发现长时间卡住,无法显示结果. 根据以往运维经验,通常df -h这种操作都无法显示时,首先就要确认是否有NFS挂载的目录,如果有,确认NFS目录是否正常. 这是最常见的情况,最近又遇 ...

  10. Excel 分列功能 帮助 用户 导入Excel

    今天遇见一个客户的 Excel有一列 就是 导入不进去  那列 基本都是 数字 我试了下  写入几个字符 就能导入  不写字符的 就是导入 不进去 龚蓼 告诉我 用分列功能 今天试了下  草 果然可以 ...