goto不能跳过抽象数据类型

buleideli 2008-03-25 06:34:03
//example1
if(.......)
goto END;
.....
int a;
.....
END: ;

这个OK

//example1
if(.......)
goto END;
.....
myClass a;//myClass 一个类
.....
END: ;

有错

、、、、、、、、、、、、、、、、、、、、、、、、、、、
怎么回事
...全文
120 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
silendream 2008-03-27
  • 打赏
  • 举报
回复
学习~~
疯石头 2008-03-27
  • 打赏
  • 举报
回复
//example1
if(.......)
goto END;
{
.....
myClass a;//myClass 一个类
.....
}
END: ;
linfengc 2008-03-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sun3411 的回复:]
怎么我的不出问题呢 VC6sp6.
[/Quote]
VC6很sb的,你一个for(int i = 0;;)
再来个for(int i = 0;;)
就报重定义。
作用域不很清晰
taodm 2008-03-26
  • 打赏
  • 举报
回复
楼主,你需要看《重构》一书,带跳出的深度循环是应该禁止的行为。
Supper_Jerry 2008-03-26
  • 打赏
  • 举报
回复
goto资源释放的时候很需要!!
yichuankun 2008-03-26
  • 打赏
  • 举报
回复
我觉得适当的使用还是可以的,大家不要一棍子打死,goto本身没错,错的是那些乱用的人
spark603 2008-03-26
  • 打赏
  • 举报
回复
都说不应该用:goto, 这原因倒底是什么.
工作中,我也想用,但怕被骂.
buleideli 2008-03-26
  • 打赏
  • 举报
回复
哦,exception不是异常处理吗,跳出深度循环用它??有例子吗?

学习。。。。。
谢谢大家
arong1234 2008-03-25
  • 打赏
  • 举报
回复
深度循环也是应该避免得,现代软件工程需要你用子函数实现。如果要跳出多重循环,应该考虑exception
buleideli 2008-03-25
  • 打赏
  • 举报
回复
有时要用咯,特别是跳出深度循环
arong1234 2008-03-25
  • 打赏
  • 举报
回复
大家不是都知道不应该用goto么:)关心这个干嘛?
buleideli 2008-03-25
  • 打赏
  • 举报
回复
cunsh 说得没错,谢谢大家!!!!!!!

记得函数作用域就是这样的,这作用域只与goto有关
sun3411 2008-03-25
  • 打赏
  • 举报
回复
怎么我的不出问题呢 VC6sp6.
ttkk_2007 2008-03-25
  • 打赏
  • 举报
回复
像这种定义,你都要加上{},将它放在一个块里,switch case也一样
cunsh 2008-03-25
  • 打赏
  • 举报
回复
if(.......)
goto END;
.....
myClass a; .....
END: ;

//这里要调用 a 的构造函数. 如果被goto过去的话构造函数就不能调用了. 假如你在 END 之后又使用 a 的话那就是使用未初始化的对象了.
//所以编译器阻止了它. 类似的还有 switch 的 case 也会出现这种问题.
//如果你这里的 a 只在 END 之前使用可以用下边的办法:

if(.......)
goto END;
.....
{ //放到一个块中.
myClass a; .....
}
END: ;
yichuankun 2008-03-25
  • 打赏
  • 举报
回复
不好意思,我搞错了,是不能,呵呵。关注
yichuankun 2008-03-25
  • 打赏
  • 举报
回复
你用的是什么编译器啊?我在VC上可以啊

64,677

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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