关于模板的问题,还请大家多多指点!

dave_mfc 2002-03-20 10:16:48
/*请问main()中的min(2, 1)函数是调用min模板,还是min()函数!为什么?可否帮小弟详细的解说一下?!多谢了!
*/


#include <iostream>

using namespace std;

template <typename t>
t min(t a, t b)
{
return (a>b) ? 1 : 0;
}

int min(int a, int b)
{
return (a>b) ? 1 : 0;
}

void main()
{
cout << min(2, 1) << endl;
}
...全文
85 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cauty45 2002-03-20
  • 打赏
  • 举报
回复
优先调用非模板.

template <typename t>
t min(t a, t b)
{
cout<<"template\n";
return (a>b) ? 1 : 0;
}

int min(int a, int b)
{
cout<<"min\n";
return (a>b) ? 1 : 0;
}

void main()
{
min(2, 1);
}
用上例测试一下,即可
babysloth 2002-03-20
  • 打赏
  • 举报
回复
函数函数的决议顺序是,最精确的优先,先重载后特化。
您这里当然先是重载^_^
stavck 2002-03-20
  • 打赏
  • 举报
回复
你跟本没有调用模板!
有那么调用模板的吗?
fixopen 2002-03-20
  • 打赏
  • 举报
回复
编译以后,模板就没了
更新历史3.0: 环境:jdk1.5 tomcat5.5.数据库用oracle.如果不用oracle的话.可能菜单表的查询出不来.我的菜单表的查询允许选择上级菜单查询该菜单所对应的所有下级菜单.所以用了递归查询. criteria.add(Restrictions.sqlRestriction("MENUITEM_ID in(select a.MENUITEM_ID from Wuxin_MENUITEM a connect by prior a.MENUITEM_ID = a.PARENT_ID"+ " start with a.MENUITEM_ID = '"+parentId+"')" )); mysql和sqlserver不知道有没有start with这个sql. jar包:项目中除了使用了struts2,hibernate3.0和spring1.8以外(用spring2.0的包也可以.不能低于1.8的包.)还是用了junit,ajax,第三方的table组件.等等.所以需要下载相对应的包. 为了上传jar.我专门申了一个网盘.所有下载地址在下载下来的这个rar包里面都有详细的介绍和说明. 说一下这个rar里面带的东西.除了源码外带了几篇文档.分别是关于项目中所使用的dwr的配置.table组件的配置说明文档.junit单元测试说明文档.还有我写这个例子时应该注意的一些东西.外加一些关于struts2和hibernate的技巧心得整理. 说一下这次3.0更新的内容.可能大家在我的博客里面已经看到了相关的日志.我懒.下面就把那个日志抽出来当说明了啊.有兴趣的就下载下来瞅瞅.偶也是菜鸟的.写的不好不要骂街啊..在此感谢各位网友的期待和支持. 这几天我终于闲下来了.也有时间开始写struts2的第三个框架版本了.主要是针对写了第二个版本之后的一些问题做一些回答才做得第三个版本.中间加一些小技巧之类的.不过我觉得还是值得一些关注的朋友期待的. 如果没有意外.这个版本应该是一个定型的版本了.在这段期间.有很多朋友问的问题大部分其实都已经不是struts2的范围了.有些都是hibernate和spring的.介于前两个版本都是单表.对hibernate的引用还是比较少的.这次索性写个多对多关系好了.打算写个权限系统好了.我就使用权限5张表.用户表,权限表.角色表.用户角色表和角色菜单表.(麻雀虽小...五脏俱全了啊...)当然这个写起来就费劲一些了.... 为了能够更好的使用各方面的技术.所以这次打算弄个大锅(弄个大锅也很累的.不过大家可能到时候配这个框架也就比较麻烦点了...不过我觉得还是能多学一下总是好的.) 说一下大锅的内容吧.自己写了个分页组件.(不是太好看...).现在ajax都已经不是什么新鲜东东了..我在里面配的是dwr..(这个简单些..其他的我看着晕...).没有自己写页面输出.我使用的table组件是:eXtremeComponents.自我感觉这个组件比较好.所以把这个组件配入进来了.随着这篇文章的发布.我会陆续在博客中更新相关针对与当前项目模块的关于struts2的一些知识点.当作大家一起进步了... 也希望各位高人多多指点啊... 这个版本起名为Struts2Test3.0.以后的日志相关内容就为关于Struts2Test3.0例子的相关内容.
软件介绍 优于以前发布的1.0~3.0版本,修正了其他的小bug和大漏洞,高手还得多多指点,面向客户,模板易修改。 附带了模板的PSD源文件。源码包含很具体的使用流程和修改指示流程。 最大特点:适合新手学习的全站静态化程序。采用FSO组件才能正常运行;用户访问一次页面则自动更新相 应的侧边栏内容和其他相关后台添加的内容。本站没有专业blog的功能模块化,没有专业blog和其他cms程序的专业化,有的只是我自己的设计思想。希望大家能喜欢 很好的兼容了firefox 和 IE ,符合w3c设计标准 功能: 1.文章,图片,音乐功能:发表自动HTML生成,分类内容列表批量静态生成可自动更新,批量更新模板,摘要,评论,清晰易用多功能UBB工具栏,可设置置顶,批量删除评论 2.友情链接--HTML生成,前台客户端自动更新,可审核 3.涂鸦收藏--HTML生成,前台客户端自动更新,审核,分类,简介,自由加喜欢的外链,可置顶 4.CSS管理--后台编辑css样式表 5.可手动生成静态页面,提高更新速度,并在生成前可更改“广告,显示数,截取字节等” 6.留言,评论的后台审核,UBB,验证码支持,可屏蔽垃圾留言--发表后全部HTML自动生成 7.强大的数据库操作:备份/还原/压缩;数据库的SQL操作,后台添加修改表和字段,创建新数据库;输出SQL数据库结构。 8.指定目录下的文件夹的文件管理,包括上传的文件--节省空间。 9.关键词过滤,屏蔽功能,可后台修改添加关键词 10.站内搜索支持多个关键词搜索 11.tags标签相关内容显示,也静态化,自动更新 12.安全功能: a)防止ASP木马和木马图片,清晰的后台界面 超级管理员的二级密码验证 b)SQL注入记录IP和注入信息(有待改进啊...高手指点) c)表单SQL过滤 13.超快速无组件上传功能(比原装化境快50倍,通过原化境和网上资料修改而成),可以设定大小和上传类型。 14.W3C优化,兼容firefox 和IE. 15.HTML生成页面之前可以设置生成的参数,如列表数,标题字符显示数,广告。 如果您搜索到月儿猫猫其他版本,不要使用,就用客户体验版。谢谢   1.您是第一次使用月儿猫猫程序,进入后台登陆页面并选择“静态HTML生成”菜单项,开始生成HTML页面,使您浏览没有数据资料的整站能正常,并激活静态页面的同步更新功能...默认用户名和密码都是:moonlightcat.cn 管理员二级密码默认是:123456 2.注意:后台设置完成后不会弹出此窗口了... 3.经过初次生成后所有静态页面都可以自动同步更新信息啦...您只需要后台发布您的信息,前台所有页面均自动更新从新生成HTML页面,前提是页面被访问,访问一次更新一次... 4.点这里进行登陆设置
没任何更新,只是在修改时加了3行代码(注意:在安装说明2的C步骤里面),实现了“注册后直接通过邮箱验证”,本程序完全支持UCH2.0,哈哈....... 新增功能: 成功注册后,email直接通过邮箱验证,免去激活! 一、罗说几句: 本人喜欢PHP,只是喜欢并非很精。所以写的PHP可能会存在一些BUG,这是在所难免的!所以大家多多指点,一起完善它。 二、插件功能: 注册前,需要输入注册码,在点击获取注册码后,输入自己的email,然后点获取注册码就行了! 接着查收由网站发出的email注册码邮件...... 能有效的防止注册机或随便输入一个不存在的Email注册的行为。 成功注册后,email直接通过邮箱验证,免去激活! 三、安装说明: 1、解压后上传Upload文件夹中的所有文件。 2、按下面说明修改3个文件:(共4处) A.打开admin/tpl/config.htm,找到: 关闭邀注册功能 checked>是 checked>否 在下面添加以下代码: 关闭邮箱获取注册码功能 checked>是 checked>否 B.打开template/default/do_register.htm,找到: 验证码 <script>seccode();输入上面的4位字母或数字,看不清可更换一张

   在下面添加以下代码: 注册码 点这里获取注册码 C.打开source/do_register.php,找到: //已经注册用户 if($_SGLOBAL['supe_uid']) { showmessage('registered', 'space.php'); } 在下面添加以下代码: //注册码验证 if($_SCONFIG['emailcode']){ $query = $_SGLOBAL['db']->query("SELECT * FROM ".tname("regcode")." where regcode='".$_POST['regcode']."'"); $getrs = $_SGLOBAL['db']->num_rows($query); if($getrs == 0){showmessage('您填写的注册码不正确,重新输入。');} $rs = $_SGLOBAL['db']->fetch_array( $query ); if($rs['email'] != $_POST['email']) { showmessage('您填写的Email地址和获取注册码的Email地址不同,填写获取注册码的Email地址。'); } } 再找到: if($newuid <= 0) { if($newuid == -1) { showmessage('user_name_is_not_legitimate'); } elseif($newuid == -2) { showmessage('include_not_registered_words'); } elseif($newuid == -3) { showmessage('user_name_already_exists'); } elseif($newuid == -4) { showmessage('email_format_is_wrong'); } elseif($newuid == -5) { showmessage('email_not_registered'); } elseif($newuid == -6) { showmessage('email_has_been_registered'); } else { showmessage('register_error'); } } else { 在下面添加以下代码: //注册码改为已使用的 updatetable('regcode', array('checkcode'=>1), array('email'=>$email)); 再找到:(新增的直接激活邮箱) //更新默认用户好友缓存 include_once(S_ROOT.'./source/function_cp.php'); foreach ($fuids as $fuid) { friend_cache($fuid); } } } 在下面添加以下代码: //如果注册email与获取注册码的email相同,则直接通过email验证 if($rs['email'] == $_POST['email']) { updatetable('spacefield', array('emailcheck'=>1), array('uid'=>$newuid)); } 3、运行install_regcode.php。 4、登陆后台,更新缓存。 5、在站点设置->注册显示,里面开启“关闭邮箱获取注册码功能”。 建议开启这个功能时,关闭验证码和验证问题功能,要不然给人感觉注册太麻烦了。其实这个功能已经很使用了! 四、插件结构: 文件夹 PATH 列表 │ install_regcode.php 安装文件 │ regcode.php Email注册码主程序 └─template 模板目录 └─default 默认模板目录 regcode_index.htm Email注册码模板文件

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧