模板函数
来源:互联网 发布:sql表字段设置默认值 编辑:程序博客网 时间:2024/06/05 04:33
对于一个简单的加法运算来说,我们给出它的代码:
int add(int m, int n){return m + n;}但是现在情况再复杂一些,我们现在要计算浮点类型的加法,我们又要重新写一个代码:
float add(float m, float n){return m + n;}
这样的情况下,只要有新的类型出现,我们就要添加新的函数,并且代码的利用率不高。观察这两个函数,很明显,整型加法和浮点型的加法只有参数类型和返回值类型有区别。这时候,我们不妨大胆的给出一个函数,它既能计算整型加法,又能计算浮点型加法。这时候,我们有了适应所有数据类型的泛型编程的思路。
下面我们给出上面代码的模板函数:
template<class T>T add(T m, T n){return m + n;}调用的时候说明类型,如:
add<int>(1,2);
可以看到,采用模板的方法时,它的编写与类型无关,可以明显的提高代码的复用率。
模板上图过程中被调用两次:
第一次:实例化前,检查模板是否有误。
第二次:实例化后,查看是否所有调用都有效。
事实上,模板并不是函数或者类。编译器用模板产生指定类型的函数或类的过程称为模板实例化。
一个非模板函数可以和一个同名的模板函数同时存在,而且该函数模板还可以被实例化为这个非模板函数。
若程序中有模板函数和函数,调用的时候会优先调用函数,而不会用模板来生成函数。
阅读全文
0 0
- 函数模板、类模板
- 模板--->函数模板
- 模板函数,模板类
- 模板之函数模板
- C++ 模板->模板函数
- 类模板(函数模板)
- 模板---函数模板
- 函数模板 类模板
- 浅谈模板----函数模板
- 关于模板--模板函数
- 函数模板、类模板
- 模板之函数模板
- 模板函数
- 函数模板
- 函数模板
- 函数模板
- 函数模板
- 模板函数
- Okhttp+Retrofit+Rxjava+MVP联合使用
- 软件工程(C编码实践篇)学习总结
- Java JVM 4: JMM
- Vulkan规范:第九章 9.6
- C语言实现顺序表
- 模板函数
- java集合框架之迭代器
- Vulkan规范:第九章 9.7
- 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。错误写法以及正确写法。
- ES6解构赋值
- codeforces Educational Codeforces Round 32 E. Maximum Subsequence
- 关于缓存
- 机器学习---第七讲支持向量机
- 定时器 cron 参数示例