3 回答

TA贡献1851条经验 获得超5个赞
我从未在C ++中使用过goto。曾经 永远 如果有这种情况,应该使用它,这种情况非常罕见。如果您实际上正在考虑将goto作为您逻辑的标准部分,那么事情就已经发生了。

TA贡献1815条经验 获得超6个赞
人们对于gotos和您的代码基本上有两点:
后藤很糟糕。 在一个需要使用goto的地方遇到这种情况非常罕见,但是我不建议您完全打败它。尽管C ++具有足够智能的控制流程,但很少适合使用goto。
您的清理机制是错误的:这一点更为重要。在C语言中,自己使用内存管理不仅可以,而且通常是做事的最佳方法。在C ++中,您的目标应该是尽可能避免内存管理。您应该尽可能避免内存管理。让编译器为您完成。而不是使用
new
,而只是声明变量。真正需要内存管理的唯一时间是事先不知道数据大小的情况。即使那样,您也应该尝试仅使用某些STL
集合。
如果您合法地需要内存管理(您尚未真正提供任何证据),则应该通过构造函数将内存管理封装在一个类中以分配内存,而通过析构函数来取消分配内存。
从长远来看,您对做事方式要容易得多的回答并不是真的。首先,一旦您对C ++有深刻的了解,使此类构造函数成为第二自然。就我个人而言,我发现使用构造函数比使用清理代码更容易,因为我不需要仔细注意以确保我正确地进行了分配。取而代之的是,我可以让对象离开范围,而语言则由我自己处理。而且,维护它们比维护清理部分要容易得多,并且不容易出现问题。
简而言之,goto
在某些情况下可能是一个不错的选择,但在这种情况下则不是。这只是短期的懒惰。
- 3 回答
- 0 关注
- 473 浏览
添加回答
举报