5
อะไรคือความแตกต่างทางแนวคิดระหว่างสุดท้ายและผู้ทำลายล้าง
ก่อนอื่นฉันตระหนักดีว่าเหตุใดจึงไม่มีการสร้าง 'ที่สุด' ใน C ++ แต่การอภิปรายความคิดเห็นที่เพิ่มขึ้นอย่างต่อเนื่องในคำถามอื่นดูเหมือนจะรับประกันคำถามแยกต่างหาก นอกเหนือจากปัญหาที่finallyใน C # และ Java สามารถมีอยู่ได้เพียงครั้งเดียว (== 1) ต่อขอบเขตและขอบเขตเดียวสามารถมี destructors C ++ หลายตัว (== n) ฉันคิดว่ามันเป็นสิ่งเดียวกัน (ด้วยความแตกต่างทางเทคนิค) อย่างไรก็ตามผู้ใช้คนอื่นแย้ง : ... ฉันพยายามที่จะบอกว่า dtor เป็นเครื่องมือสำหรับ (sematics ที่วางจำหน่าย) และในที่สุดก็เป็นเครื่องมือสำหรับ (Commit semantics) หากคุณไม่เห็นสาเหตุ: ลองคิดดูว่าทำไมการโยนข้อยกเว้นทับซ้อนทับกันในที่สุดก็เป็นเรื่องถูกกฎหมายและทำไมสิ่งเดียวกันถึงไม่ได้สำหรับผู้ทำลายล้าง (ในบางแง่มันเป็นข้อมูลเทียบกับสิ่งควบคุม Destructors สำหรับการปล่อยข้อมูลในที่สุดก็เพื่อปล่อยการควบคุมพวกมันต่างกันโชคไม่ดีที่ C ++ เชื่อมโยงพวกเขาเข้าด้วยกัน) มีคนล้างข้อมูลนี้ได้ไหม
12
c++
exceptions
finally