C++中函数重载和函数模板的理解
作者:网络转载 发布时间:[ 2014/4/24 10:31:41 ] 推荐标签:C++ 函数
C++真心难,第一遍是我一年前看的。现在再看感觉好像全新的一样。。。
好了,简单介绍下函数重载,学过编程的都对这个重载很熟悉了。函数重载的判断标识是它的函数参数列表,而不是返回值来判断的。所以像
long gronk(int n, float m);
double gronk(int , float m);
是会报错的。这没有函数重载。
接下来是函数模板。
函数模板类似
template<class Any>
void swap (Any &a, Any &b)
{
Any temp;
temp = a;
a = b;
b = temp;
}
接下来介绍下函数模板里非常重要的具体化和实例化。
其实,在使用函数模板时,编译器会自动把模板实例化,称为隐式实例化,类似
void swap (int &a, int &b);
是实例化成了这样一个函数, 只不过是隐式的。
显示实例化类似
template void swap<int>(int &a,int &b);
显示具体化类似
template <> void swap<int>(int &a,in t &b);
两者的差别是template后面的括号。
具体化将会覆盖常规模板,非模板函数将会覆盖具体化和常规模板。
在我的理解是,显式具体化和显示实例化都是讲某一特定类型的模板函数进行实例化,调用它们时将不会调用模板函数的定义。所以同一编程单元中,同一类型不能同时存在显示具体化和显示实例化。否则二义了。
好了,先介绍这里。明天开始我网络方面的可靠数据传输协议还要看看,C++的类和对象还要复习下,争取把const和引用的关系整理出来,也写一下。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11