• mfc 函数模板


    函数模板的使用
    
    一、 函数模板的使用
       使用函数模板可以简化 形参个数相同,而类型不同的函数。  
     template<typename T>   //可以用class替换typename
    
     int max(int array[],int len) // int array[len]
    {
      int imax=0;
       for(int i=0;i<len;i++)
       {
          if(array[i]>imax)
          {
              imax=array[i];//取得最大值
          }
       }
       return imax;
    }
    
    float max(float array[],int len) // int array[len]
    {
        float imax=0;
        for(int i=0;i<len;i++)
        {
            if(array[i]>imax)
            {
                imax=array[i];//取得最大值
            }
        }
        return imax;
    }
    
    double max(double array[],int len) // int array[len]
    {
        double imax=0;
        for(int i=0;i<len;i++)
        {
            if(array[i]>imax)
            {
                imax=array[i];//取得最大值
            }
        }
        return imax;
    }
    
    111,222
    6
    99.887703

    使用模板后代码,不同类型的重载 ,只需要定义一个模板函数

    #include "stdafx.h"
    #include <malloc.h>
    int max(int a,int b)
    {
        return 111;
    }
    int max(int a,int b,int c)
    {
        return 222;
    }
    //int max(int array[],int len) // int array[len]
    //{
    //  int imax=0;
    //   for(int i=0;i<len;i++)
    //   {
    //      if(array[i]>imax)
    //      {
    //          imax=array[i];//取得最大值
    //      }
    //   }
    //   return imax;
    //}
    //
    //float max(float array[],int len) // int array[len]
    //{
    //    float imax=0;
    //    for(int i=0;i<len;i++)
    //    {
    //        if(array[i]>imax)
    //        {
    //            imax=array[i];//取得最大值
    //        }
    //    }
    //    return imax;
    //}
    
    template <class S,class ti> S max(S array[],ti len) // int array[len]
    {
        S imax=0;
        for(ti i=0;i<len;i++)
        {
            if(array[i]>imax)
            {
                imax=array[i];//取得最大值
            }
        }
        return imax;
    }
    int _tmain(int argc, _TCHAR* argv[])
    { 
         int a[6]={1,2,3,4,5,6};
         float af[6]={1.0,3.0,1.0,0,0,99.8877};
         printf("%d,%d
    ",max(1,2),max(1,1,1));
         printf("数组a最大值为%d 
    ",max(a,sizeof(a)/sizeof(int)));
         printf("数组a最大值为%f ",max(af,sizeof(af)/sizeof(float)));
        
        getchar();
        return 0;
    }
  • 相关阅读:
    IIS部署网站 HTTP 错误 500.21
    Oracle常用操作表空间sql脚本
    oracle 11g错误ora-01033:oracle initialization or shutdown in progress解决办法
    关于OPC连接读写下位机PLC(转)
    oracle 日期格式操作
    第三方app抽奖发送微信红包实现
    XML 字符串解析
    VS2013 统计代码量(使用正则表达式)
    使用IntelliJ IDEA 配置Maven(入门)(转)
    学习方法分享 | 从JVM说起,聊聊Java的学习和复习!
  • 原文地址:https://www.cnblogs.com/whzym111/p/6179192.html
Copyright © 2020-2023  润新知