3 回答

TA貢獻1851條經驗 獲得超5個贊
我從未在C ++中使用過goto。曾經 永遠 如果有這種情況,應該使用它,這種情況非常罕見。如果您實際上正在考慮將goto作為您邏輯的標準部分,那么事情就已經發生了。

TA貢獻1815條經驗 獲得超6個贊
人們對于gotos和您的代碼基本上有兩點:
后藤很糟糕。 在一個需要使用goto的地方遇到這種情況非常罕見,但是我不建議您完全打敗它。盡管C ++具有足夠智能的控制流程,但很少適合使用goto。
您的清理機制是錯誤的:這一點更為重要。在C語言中,自己使用內存管理不僅可以,而且通常是做事的最佳方法。在C ++中,您的目標應該是盡可能避免內存管理。您應該盡可能避免內存管理。讓編譯器為您完成。而不是使用
new
,而只是聲明變量。真正需要內存管理的唯一時間是事先不知道數據大小的情況。即使那樣,您也應該嘗試僅使用某些STL
集合。
如果您合法地需要內存管理(您尚未真正提供任何證據),則應該通過構造函數將內存管理封裝在一個類中以分配內存,而通過析構函數來取消分配內存。
從長遠來看,您對做事方式要容易得多的回答并不是真的。首先,一旦您對C ++有深刻的了解,使此類構造函數成為第二自然。就我個人而言,我發現使用構造函數比使用清理代碼更容易,因為我不需要仔細注意以確保我正確地進行了分配。取而代之的是,我可以讓對象離開范圍,而語言則由我自己處理。而且,維護它們比維護清理部分要容易得多,并且不容易出現問題。
簡而言之,goto
在某些情況下可能是一個不錯的選擇,但在這種情況下則不是。這只是短期的懶惰。
- 3 回答
- 0 關注
- 494 瀏覽
添加回答
舉報