11
การทำความเข้าใจความหมายของคำศัพท์และแนวคิด - RAII (Resource Acquisition is Initialization)
คุณช่วยนักพัฒนา C ++ ช่วยให้คำอธิบายที่ดีแก่เราได้ไหมว่า RAII คืออะไรทำไมจึงสำคัญและอาจมีความเกี่ยวข้องกับภาษาอื่นหรือไม่ ผมทำรู้นิด ๆ หน่อย ๆ ฉันเชื่อว่าย่อมาจาก "Resource Acquisition is Initialization" อย่างไรก็ตามชื่อนั้นไม่ได้ทำให้สับสนกับความเข้าใจ (อาจไม่ถูกต้อง) ของฉันเกี่ยวกับสิ่งที่ RAII คือ: ฉันรู้สึกว่า RAII เป็นวิธีเริ่มต้นวัตถุบนสแต็กดังนั้นเมื่อตัวแปรเหล่านั้นออกไปนอกขอบเขตผู้ทำลายจะโดยอัตโนมัติ เรียกว่าทำให้ทรัพยากรถูกล้าง เหตุใดจึงไม่เรียกว่า "ใช้สแต็กเพื่อทริกเกอร์การล้างข้อมูล" (UTSTTC :)? คุณจะเดินทางจากที่นั่นไปยัง "RAII" ได้อย่างไร? และคุณจะสร้างบางสิ่งบนสแต็กที่จะทำให้เกิดการล้างบางสิ่งที่อาศัยอยู่บนฮีปได้อย่างไร? นอกจากนี้ยังมีกรณีที่คุณไม่สามารถใช้ RAII ได้หรือไม่? คุณเคยคิดว่าตัวเองอยากเก็บขยะไหม? อย่างน้อยคนเก็บขยะที่คุณสามารถใช้สำหรับวัตถุบางอย่างในขณะที่ปล่อยให้คนอื่นจัดการ? ขอบคุณ.