返回C 引用變數:好、壞、醜
返回C 是否「邪惡」的問題引用變數引發了程式設計界的爭論。了解潛在的陷阱和最佳實踐可以幫助您做出明智的決定。
問題是什麼?
根據一些人的說法,返回引用會增加記憶體洩漏的風險如果它引用一個在函數呼叫後被銷毀的物件。在以下情況下可能會發生這種情況:
邪惡範例
這些範例說明了危險:
int& getInt() { int i; return i; // DON'T DO THIS }
這將傳回對堆疊分配變數的引用,該變數在函數呼叫後被銷毀,從而導致未定義的行為。
int& getInt() { int* i = new int; return *i; // DON'T DO THIS }
這將傳回對堆疊分配變數的引用,但客戶端必須使用令人困惑的語法刪除手動刪除它&reference。
最佳實踐
要避免這些問題,請遵循以下準則:
結論
雖然回傳引用很方便,但很重要了解潛在的風險。透過遵循上述最佳實踐,您可以避免記憶體洩漏並編寫安全且可維護的程式碼。
以上是返回 C 引用變數何時安全(何時不安全)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!