函数模板的使用

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

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

#include "stdafx.h"
#include <malloc.h>
int max(int a,int b)
{
return ;
}
int max(int a,int b,int c)
{
return ;
}
//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=;
for(ti i=;i<len;i++)
{
if(array[i]>imax)
{
imax=array[i];//取得最大值
}
}
return imax;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[]={,,,,,};
float af[]={1.0,3.0,1.0,,,99.8877};
printf("%d,%d\n",max(,),max(,,));
printf("数组a最大值为%d \n",max(a,sizeof(a)/sizeof(int)));
printf("数组a最大值为%f ",max(af,sizeof(af)/sizeof(float))); getchar();
return ;
}

mfc 函数模板的更多相关文章

  1. c++函数模板作为类的成员函数,编译报错LNK2019的解决方法

    为了使某个类的成员函数能对不同的参数进行相同的处理,需要用到函数模板,即template<typename T> void Function(). 编译时报错LNK2019 解决方法: 1 ...

  2. C++STL - 函数模板

    模板主要是为了泛型编程,做到与类型无关 模板有函数模板和类模板,本文主要整理的是函数模板 1.函数模板定义 template<typename 类型形参1,typename 类型形参2,...& ...

  3. 使用getopt_long来解析参数的小函数模板

    getopt_long原型 #define no_argument 0 #define required_argument 1 #define optional_argument 2 struct o ...

  4. C++函数重载和函数模板

    1.函数重载 这是小菜鸟写的一个例子. 函数重载应该注意以下几点: 1.1重载函数有类似的功能: 1.2只能以参数的类型(形参个数和类型)来重载函数, int max(int a,int b);flo ...

  5. 零值初始化&字符串常数作为函数模板参数

    1.在定义一个局部变量时,并希望该局部变量的初始化一个值,可以显示调用其默认构造函数,使其值为0(bool类型默认值为false). template <typename T> void ...

  6. 让gcc支持成员函数模板的trick

    让gcc支持成员函数模板的trick 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循“署名-非商业用途-保持一致”创作公用协议   gcc 4.7.3 不支持成员 ...

  7. 不可或缺 Windows Native (16) - C++: 函数重载, 缺省参数, 内联函数, 函数模板

    [源码下载] 不可或缺 Windows Native (16) - C++: 函数重载, 缺省参数, 内联函数, 函数模板 作者:webabcd 介绍不可或缺 Windows Native 之 C++ ...

  8. Effective C++ -----条款45:运用成员函数模板接受所有兼容类型

    请使用member function templates(成员函数模板)生成”可接受所有兼容类型“的函数. 如果你声明member templates 用于“泛化copy构造”或“泛化assignme ...

  9. c++ 左值右值 函数模板

    1.先看一段代码,这就是一种函数模板的用法,但是红色的部分如果把a写成a++或者写成一个常量比如1,都是编译不过的,因为如果是a++的话,实际上首先是取得a的 值0,而0作为一个常量没有地址.写成1也 ...

随机推荐

  1. DELETE语句总结

    一.基本语句 1.SQL DELETE 语法 DELETE FROM table_name WHERE condition; 请注意 删除表格中的记录时要小心!注意SQL DELETE 语句中的 WH ...

  2. 用path动画绘制水波纹

    用path动画绘制水波纹 效果 源码 // // ViewController.m // PathAnimation // // Created by YouXianMing on 15/7/3. / ...

  3. Redis常用指令

    1.使用指令存储数据 不同数据类型的使用 1.String > 在以上指令中我们使用set指令向redis存进了一个数据类型为string,名为str1,值为123456.(如果你要问为什么,那 ...

  4. Linux chown命令详解

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符. chown常见命令参数 Usage: cho ...

  5. JAVA容器全面总结

    1      容器体系图 简图: 详图: 2      基础 2.1      Iterator接口 迭代器. 具有的能力:后向迭代.删除. 2.2      Iterable接口 表示一个类具有迭代 ...

  6. django 错误之 OSError: mysql_config not found

    pip 导入包时出现如下错误 Complete output from command python setup.py egg_info: /bin/: mysql_config: not found ...

  7. python第十四课--排序及自定义函数之自定义函数(案例二)

    案例二: python中定义有/无返回值的函数,演示python没有函数重载这一说 需求:自定义函数:计算两个整数的和值两个原则:1).有没形参有,两个 2).有没返回值可有可无 def my_sum ...

  8. JSP九大内置对象和四大作用域和Servlet的三大作用域对象

    一.JSP九大内置对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用 内置对象特点: 由JSP规范提供,不用编写者实例化. 通过Web容器实现和管理 所有 ...

  9. 打开一个网站中的不同页面时,相同的js文件会被重复加载吗?

    作者:JasonYang链接:https://www.zhihu.com/question/41184156/answer/135195798来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非 ...

  10. django restframework 简单总结

    官方文档:http://www.django-rest-framework.org/ model.py class Snippet(models.Model): created = models.Da ...