c++笔记 模板 类模板分文件编写
2021/10/6 20:11:09
本文主要是介绍c++笔记 模板 类模板分文件编写,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
//目标:类模板实例化出的对象,向函数传参的方式 //一共有三种: //1.指定传入的类型 直接显示对象的数据类型 //2.参数模板化 将对象中的参数变为模板进行传递 //3.整个类模板化 将这个对象类型 模板化进行传递 #include<iostream> using namespace std; 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("陆伯言", 20); 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("孙仲谋", 22); printperson2(p); } //3.整个类模板化 //将整个person类视为模板内一个参数表的参数 template<class T> void printperson3(T& p) { p.showPerson(); cout << "T的类型为: " << typeid(T).name() << endl; } void test03() { person<string, int>p("吕子明", 25); printperson3(p); } int main() { test01(); test02(); test03(); }
这篇关于c++笔记 模板 类模板分文件编写的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享