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. 【VictoriaMetrics源码阅读】vm中仿照RoaringBitmap的实现:uint64set

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu 公众号:一本正经的瞎扯 正文 VictoriaMetrics中使用uint64类型来表示一个Me ...

  2. Linux线程间交互

    前言 上一篇说过,系统会为线程mmap一块内存,每个线程有自己的私有栈,使用局部变量没啥问题.但是实际场景中不可避免的需要线程之间共享数据,这就需要确保每个线程看到的数据是一样的,如果大家都只需要读这 ...

  3. 又学了一招:微软科普Windows 11电脑自动清理释放硬盘

    你是不是每次都等到电脑内存被占满,磁盘"红"成一片,才想起来去清理那些没用的程序or文件? 今天微软官方科普了一个小技巧:既然都用上了Windows 11 ,为什么不让电脑帮你自动 ...

  4. 基于minsit数据集的图像分类任务|CNN简单应用项目

    Github地址 Image-classification-task-based-on-minsit-datasethttps://github.com/Yufccode/CollegeWorks/t ...

  5. 基于OpenCV-Python的图像位置校正和版面分析

    前言 使用opencv对图像进行操作,要求:(1)定位银行票据的四条边,然后旋正.(2)根据版面分析,分割出小写金额区域. 图像校正 首先是对图像的校正 读取图片 对图片二值化 进行边缘检测 对边缘的 ...

  6. P4149 [IOI2011] Race 题解

    题目链接:Race 点分治基本题,从这题简单阐述点分治如何思考问题的.点分治常见的解决一类问题,就是树里面的一些路径类问题.比如一些计数是最常见的. 点分治的一个核心计数思想: 如图所见,对于某个点而 ...

  7. Oracle私网mtu滚动修改实施方案

    之前测试遇到过mtu修改不能滚动的情况,目前在自己测试环境重新反复验证发现正常是可以滚动的,下面梳理下整个实施方案: 环境:RHEL6 + Oracle 11.2.0.4 RAC(2 nodes) / ...

  8. Wamp MySQL 报错 Got a packet bigger than 'max_allowed_packet' bytes

    点击电脑右下角wamp图标,然后进入mysql 下面的 my.ini 转移数据发现报这个错,字面意思允许的不够大.网上很多说法不起作用,解决方法如下: [mysqld] port=3306 expli ...

  9. Idhttp Post https 连接 报“IOHandler value is not valid.”错误

    今天研究阿里巴巴的对接,发现IDHTTP 的post 如果是 https 的连接就会报:"IOHandler value is not valid."错误 加载https的站点页面 ...

  10. 【XInput】游戏手柄模拟鼠标动作

    老周一般很少玩游戏,在某宝上买了一堆散件,计划在过年期间自己做个机械臂耍耍.头脑中划过一道紫蓝色的闪电,想起用游戏手柄来控制机械臂.机械臂是由树莓派(大草莓)负责控制,然后客户端通过 Socket U ...