高手留步,template是如何工作的,为题解决了,方分

JetGeng 2003-11-14 08:42:48
我写了这样的一个函数
bool Input(T & Input)
{
//Use to record the times user had input
int int_Index = 0;
try
{
do
{
cin>>Input;
if (Input>0)
{
return true;
}
else
{
Input = 0;
cout<<endl;
cout<<"You Input a wrong No.Please try Again!"<<endl;
}
}while(++int_Index<3);
return false;
}
catch(string temp)
{
cout<<temp.c_str;
return false;

}
}
在主函数中以如下形式调用
int intTemp;
float fTemp;
bResult = Input(intTemp);//1

bResult = Input(fTemp); //2
这两次调用反汇编得到结果如下
call Input (430FD7h) // 1

call Input (430FAAh)
而00430FD7 jmp Input (434DA0h)
00430FAA jmp Input (435460h)
这样他酒厂深了两个实体,

...全文
45 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaochong12 2003-11-15
  • 打赏
  • 举报
回复
哈哈哈哈哈哈~同意同意!!
xjsean 2003-11-14
  • 打赏
  • 举报
回复
嗯,本人也有同感,第一眼看到楼主用T,就觉得有些不对劲,至少应该有句template<T>吧.
不知道楼主的程序有没有调试过,估计确实有问题存在,希望仔细研究一下!
noirchloe 2003-11-14
  • 打赏
  • 举报
回复
首先,我觉得你这段代码有问题,你的 T 一定实现了<<吗?你是不是应该在
bool Input(T & input)前加一个template<T>呢?
如果是这样的话
在其他编译器我不知道,但是在VC6里,模板只是简单的替换.....也许不敢相信,但好象就是这么做的,你上面的两个jmp实际上是
bool Input(float & input)函数
bool Input(int & input)函数
是两个不同的函数,地址当然不一样

以上仅攻参考........

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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