c++中的泛型1
2021/8/16 9:06:26
本文主要是介绍c++中的泛型1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 泛型概念:将数据类型作为一个参数,传入到函数、类或接口中,即同一种数据操作,可面向不同的数据类型,因此我们不需要为不同的数据类型写相同的数据操作代码;
2. 泛型编程的优点:
(1)代码复用
(2)避免使用函数重载(相似的操作):函数重载做的是相似的操作,模板是用来做相同的操作;
(3)一次写好,多次使用
3. 函数泛型
1 template<typename T> 2 T myMax(T x, T y) 3 { 4 return (x>y)?x:y; 5 } 6 7 8 myMax<int>(2,3);
4. 类泛型
1 template <typename T> 2 3 class Array 4 { 5 T* ptr; 6 int size; 7 8 public: 9 Array(T arr[],int s); 10 void print(); 11 } 12 13 template <typename T> 14 Array<T>::Array(T arr[],int s) 15 { 16 //pass 17 } 18 19 20 template <typename T> 21 void Array<T>::print() 22 { 23 for(int i=0;i<size;i++) 24 { 25 cout<<(*ptr+i)<<endl; 26 } 27 28 29 int arr[]={1,2,3}; 30 Array<int> a(arr,5); 31 a.print()
5. 多类型泛型:即可以传入多个数据类型到模板参数中,模板参数也可以有默认类型;
1 template<typename T, typename U> 2 class A 3 { 4 T x; 5 U y; 6 } 7 8 9 A<int, double> a;
6. 可以在template中传入非类型参数,但必须是常量(编译时必须知道值);
1 template <typename T, int max> 2 int arrMin(T arr[], int n) 3 { 4 //pass 5 } 6 7 8 9 int arr1[]={1,2,3}; 10 arrMin<int, 100>(arr1,10);
7. 可以指定某个数据类型做其他操作:即template specialization;
这篇关于c++中的泛型1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23新能源车企如何通过CRM工具优化客户关系管理,增强客户忠诚度与品牌影响力
- 2024-12-23原创tauri2.1+vite6.0+rust+arco客户端os平台系统|tauri2+rust桌面os管理
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程