函数模板重载(不容易哦)?
template<class T>
void fun(const T& a,const T& b)
{
}
void fun(const char* a,const char*b)
{
}
void main()
{
char *p= "aaa";
char *q = "bbb";
fun(p,q);
}先说下在vs2008下运行结果,是调用模板函数.这个结果我无法理解.
我的想法是:
对于普通函数,实参跟形参需要进行如下转换
实参 形参
char* -> const char*
/////////////////////////////////////
对于模板函数,实参跟形参需要进行如下转换
实参 形参
char* -> char* const&
如果都要进行转换,那么普通函数应该要优先于模板函数才对.
但是为什么结果是调用模板函数呢?难道模板函数不需要类型转换吗???
...全文
相关推荐
C++中函数重载和函数模板的理解
C++真心难,第一遍是我一年前看的。现在再看感觉好像全新的一样。。。 好了,简单介绍下函数重载,学过编程的都对这个重载很熟悉了。函数重载的判断标识是它的函数参数列表,而不是返回值来判断的。所以像 long gronk(int n, float m); double gronk(int , float m); 是会报错的。这没有函数重载。 接下来是函数模板。 函数模板类似 template void swap (Any &a, Any &b) { Any temp; temp = a; a = b;
重载函数模板与非模板函数示例
重载函数模板与非模板函数示例 帮助初学者
C++函数重载•函数模板•类模板.doc
一 函数重载 二函数模板 三类模板 的说明及代表代码
cpp代码-函数模板和函数重载调用规则
cpp代码-函数模板和函数重载调用规则
函数模板对数组冒泡排序
用函数模板对数组冒泡排序---对线性表的部分操作


