| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 755 人关注过本帖
标题:函数模板如何理解
只看楼主 加入收藏
ruankui001
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-9-24
结帖率:50%
收藏
 问题点数:0 回复次数:7 
函数模板如何理解
如何用函数模板实现max可以求两个参数,甚至更多参数的最大值
搜索更多相关主题的帖子: 模板 函数 
2009-09-18 15:31
forclwy
Rank: 4
等 级:业余侠客
帖 子:167
专家分:255
注 册:2008-10-21
收藏
得分:0 
模板实现两个参数的,可以
再实现更多参数的就要重写模板了。。
2009-09-18 20:27
shl305
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:36
专家分:121
注 册:2009-3-13
收藏
得分:0 
可以用传数组的方式变通实现
用不定参数列表也可以实现,不过牵扯到的知识较深,再加上模板,OMG~~
2009-09-18 23:37
marketivacn
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-9-19
收藏
得分:0 
回复 楼主 ruankui001
多个参数的话是要用重载

http://hi.baidu.com/openmarketiva
注册就送5美金炒外汇
2009-09-19 09:48
serious
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:81
专家分:497
注 册:2009-8-18
收藏
得分:0 
这个程序是你要吗 ?
#include <cstdlib>
#include <cstdarg>
#include <iostream>
using namespace std;
template<typename T>
T _max(uint const n, ...)
{
    va_list others;
    va_start(others, n);
    T max = va_arg(others, T);
    for (uint i = 2; i <= n; ++i)
    {
        T const next = va_arg(others, T);
        max = next > max ? next : max;
    }
    va_end(others);
    return max;
}
int main()
{
    cout << _max<int>(1u, 1) << endl;
    cout << _max<int>(2u, 1, 2) << endl;
    cout << _max<double>(3u, 1., 3., 2.) << endl;
    cout << _max<double>(5u, 1., 5., 10., 2., 1.) << endl;
}



[ 本帖最后由 serious 于 2009-9-20 00:00 编辑 ]
2009-09-19 23:55
newCpp
Rank: 5Rank: 5
来 自:火星
等 级:职业侠客
威 望:3
帖 子:256
专家分:375
注 册:2009-8-17
收藏
得分:0 
就好比一模型!
做了一个实用物品后,还可以再去制作1

编程语言视频教程在线播放学习
2009-09-20 07:21
ruankui001
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-9-24
收藏
得分:0 
谢谢!终于理解了!
2009-09-24 14:01
ruankui001
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-9-24
收藏
得分:0 
谢谢各位了!
2009-10-12 10:51
快速回复:函数模板如何理解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011944 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved