注册 登录
编程论坛 C++教室

函数模板问题

whl20888 发布于 2008-12-15 22:26, 771 次点击
#include <iostream.h>
template<class t>
t  max(t a,t  b)
{return (a>=b)?a:b;}
void main()
{
    int a,b;
    cin>>a>>b;
    cout<<max(a,b)<<endl;
    cout<<max("lisi","zhangsan");
}
这个程序中的 max("lisi","zhangsan");
对不对呢,这是书上的,觉得有点问题,不太清楚,麻烦高手讲解下!
4 回复
#2
sunkaidong2008-12-16 10:36
有什么问题?好像没什么问题..
#3
hitcolder2008-12-16 11:06
回复 楼主 whl20888 的帖子
说下个人理解:
我觉得是对的,对于这个程序中的 max("lisi","zhangsan");模板中的t会默认成字符指针的形式,因此max()函数会比较"lisi"和"zhangsan"指针的大小,然后返回大点的指针,所以输出后仍然是一个字符串,应该是zhangsan,如果用的是
max("zhangsan","lisi");那输出的就是lisi,这又要涉及到内存的分配问题了。
1