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++笔记 模板 类模板分文件编写的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-01使用 SVN合并操作时,怎么解决冲突的情况?-icode9专业技术文章分享
- 2025-01-01告别Anaconda?试试这些替代品吧
- 2024-12-31自学记录鸿蒙API 13:实现人脸比对Core Vision Face Comparator
- 2024-12-31自学记录鸿蒙 API 13:骨骼点检测应用Core Vision Skeleton Detection
- 2024-12-31自学记录鸿蒙 API 13:实现人脸检测 Core Vision Face Detector
- 2024-12-31在C++中的双端队列是什么意思,跟消息队列有关系吗?-icode9专业技术文章分享
- 2024-12-31内存泄漏(Memory Leak)是什么,有哪些原因和优化办法?-icode9专业技术文章分享
- 2024-12-31计算机中的内存分配方式堆和栈有什么关系和特点?-icode9专业技术文章分享
- 2024-12-31QT布局器的具体使用原理和作用是什么?-icode9专业技术文章分享
- 2024-12-30用PydanticAI和Gemini 2.0构建Airflow的AI助手