Stack overflow?

onewaytosky 2004-04-12 08:13:11
添加了一个属性CurrentStepl,并且设置了set和get,结果
老是出现stack overflow?
谁能帮帮我?

void __fastcall TNewChemForm::SetCurrentStep(int StepValue)
{
CurrentStep = StepValue;
}
...全文
110 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
onewaytosky 2004-04-16
  • 打赏
  • 举报
回复
在属性定义定义窗口,必须选择一个
选项才能调通。否则即使.h和.cpp文
件代码完全一样也不行
StockViews 2004-04-16
  • 打赏
  • 举报
回复
真有意思,我都说到这个份上了^
CurrentStep你是怎么定义的?
onewaytosky 2004-04-15
  • 打赏
  • 举报
回复
可是加一个F后调不通,说变量未定义
除了set和get函数里面,别的地方还有需要改动的吗
StockViews 2004-04-15
  • 打赏
  • 举报
回复
我想,你的程序中可能有这样的定义
__published:
__property int CurrentStep = { read=GetCurrentStep,write=SetCurrentStep};

这个语句的意思是:
当你使用 CurrentStep = Value 时就相当于调用SetCurrentStep(Value),也就是说你写的
void __fastcall TNewChemForm::SetCurrentStep(int StepValue)
{
CurrentStep = StepValue;
}
也就是与下面的写法完全等价
void __fastcall TNewChemForm::SetCurrentStep(int StepValue)
{
SetCurrentStep(StepValue);
}
这不是很明显的递归吗?而且这个递归是没有退出条件的,也就是说,会一直"递归"下去,达到一定的次数时,就会出现stack overflow了.

GeoPhoenix 2004-04-14
  • 打赏
  • 举报
回复
毛病肯定不在这里,这里没有问题,查查别的地方把
onewaytosky 2004-04-14
  • 打赏
  • 举报
回复
1楼的什么意思?
BCB不会强迫用户定义变量前加一个F吧?
wcccc1 2004-04-13
  • 打赏
  • 举报
回复
没看到哪出现递归死循环,怎么会出这个?
StockViews 2004-04-13
  • 打赏
  • 举报
回复
这没有出现stack overflow就怪了,呵呵


把CurrentStep = StepValue;改为
FCurrentStep = StepValue;(假设你按BCB的习惯定义的变量,呵呵)


13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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