正文

c++(模板和重载)2005-07-10 15:28:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/jay0518/2732.html

分享到:

#include<iostream> #include<iomanip> using namespace std; template <class T> T larger(T a,T b); template<>long* larger<long*>(long* a,long* b); template<class T>T larger(const T array[],int count); template<class TReturn,class TArg>TReturn larger(TArg a,TArg b); int main() {     cout<<endl;     cout<<"the larger between 1.2 and 3.5 is:"<<larger(1.2,3.5)<<endl;     int value=25;     int value1=21;     cout<<"the larger between"<<value<<"and"<<value1<<"is:"<<larger(value,value1)<<endl;     long value3=35;     long value4=25;     cout<<"the larger between"<<value3<<"and"<<value4<<"is:"<<larger(value3,value4)<<endl;     cout<<"the larger between"<<value3<<"and"<<value4<<"is:"<<*larger(&value3,&value4)<<endl;     double x[]={10.5,12.5,2.5,13.5,5.5};     cout<<"Largest element has the value"<<larger(x,sizeof x/sizeof x[0])     <<endl;     cout<<"larger of 1.5 and 2.5 is:"<<larger<int>(1.5,2.5)<<endl; } template <class T> T larger(T a,T b) {     cout<<"standard version"<<endl;     return (a>b)?a:b; } template<>long* larger<long*>(long* a,long* b) {     cout<<endl         <<"specialized version"<<endl;     return *a>*b?a:b; } template<class T>T larger(const T array[],int count) {     cout<<endl<<"template overload version for arrays"<<endl;     T result=array[0];     for(int i=0;i<count;i++)         if(array[i]>result)             result=array[i];         return result; } template <class TReturn,class TArg>TReturn larger(TArg a,TArg b) {     return a>b?a:b; }

阅读(3556) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册