模版注释前:
#include <iostream>
#include <string>
using namespace std;//template<class T> T max(T a,T b)
//{
// return a>b?a:b;
//}char* max(char* a,char* b)
{
return (strcmp(a,b)?a:b);
}void main()
{
cout <<"Max(\"Hello\",\"Gold\") is "
<< max("Hello","Gold") <<endl; system("PAUSE");
}
结果是:Max("Hello","Gold") is Hello模版注释释放后
#include <iostream>
#include <string>
using namespace std;template<class T> T max(T a,T b)
{
return a>b?a:b;
}char* max(char* a,char* b)
{
return (strcmp(a,b)?a:b);
}void main()
{
cout <<"Max(\"Hello\",\"Gold\") is "
<< max("Hello","Gold") <<endl; system("PAUSE");
}结果是:Max("Hello","Gold") is Gold
不都是调用了一个函数吗?结果为啥不一样呢?
#include <iostream>
#include <string>
using namespace std;//template<class T> T max(T a,T b)
//{
// return a>b?a:b;
//}char* max(char* a,char* b)
{
return (strcmp(a,b)?a:b);
}void main()
{
cout <<"Max(\"Hello\",\"Gold\") is "
<< max("Hello","Gold") <<endl; system("PAUSE");
}
结果是:Max("Hello","Gold") is Hello模版注释释放后
#include <iostream>
#include <string>
using namespace std;template<class T> T max(T a,T b)
{
return a>b?a:b;
}char* max(char* a,char* b)
{
return (strcmp(a,b)?a:b);
}void main()
{
cout <<"Max(\"Hello\",\"Gold\") is "
<< max("Hello","Gold") <<endl; system("PAUSE");
}结果是:Max("Hello","Gold") is Gold
不都是调用了一个函数吗?结果为啥不一样呢?
这里比较的是指针,而不是具体数据
return (strcmp(a,b)?a:b);
这里比较的是字符串的值,所以是对的
template<class T> T max(T a,T b) 是指针