วีดีโอ: อะไรคือความแตกต่างที่สำคัญระหว่างการลบ [] และการลบ?
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
สาเหตุที่แยกจากกัน ลบ และ ลบ ตัวดำเนินการก็คือ ลบ เรียก onedestructor ในขณะที่ ลบ ต้องค้นหาขนาดของ thearray และเรียกมันว่า destructors จำนวนมาก โดยธรรมชาติแล้วการใช้อันหนึ่งอันอื่นที่จำเป็นอาจทำให้เกิดปัญหาได้
นอกจากนี้ อะไรคือความแตกต่างระหว่าง free () และ delete?
ความแตกต่างระหว่าง delete โอเปอเรเตอร์และ ฟรี() การทำงาน ลบ เป็นตัวดำเนินการในขณะที่ ฟรี() เป็นฟังก์ชันของห้องสมุด ลบฟรี หน่วยความจำที่จัดสรรและตัวทำลายการโทร แต่ ฟรี() ยกเลิกการจัดสรรหน่วยความจำแต่ไม่เรียก destructor ลบ เร็วกว่า ฟรี() เพราะ anoperator เร็วกว่าฟังก์ชันเสมอ
รู้ด้วยว่า delete ทำอะไรใน C ++ ลบ () ใน ค ++ ลบคือ ตัวดำเนินการที่ เป็น ใช้เพื่อทำลายอาร์เรย์และวัตถุที่ไม่ใช่อาร์เรย์ (ตัวชี้) ซึ่ง เป็น ที่สร้างขึ้นโดยนิพจน์ใหม่ ซึ่งหมายความว่า ลบ ตัวดำเนินการจัดสรรหน่วยความจำจากฮีป ตัวชี้ไปที่วัตถุ เป็น notdestroyed ค่าหรือบล็อกหน่วยความจำชี้โดยตัวชี้ เป็น ถูกทำลาย
ในที่นี้ การลบ กับ การลบ ต่างกันอย่างไร
ลบ และ ลบ มีการกำหนดค่อนข้างคล้ายกัน แต่หลัก ความแตกต่างระหว่าง พวกนั้นคือ ลบ วิธี ลบ (เช่นทำให้ไม่มีอยู่หรือไม่สามารถกู้คืนได้) ในขณะที่ ลบ หมายความถึง เอาไปและกันไว้ (แต่คงอยู่)
destructor แตกต่างจากตัวดำเนินการลบอย่างไร?
ครั้งแรก ผู้ทำลาย เรียกว่า วัตถุสมบูรณ์ ผู้ทำลาย , ดำเนินการทำลายโดยไม่ต้องเรียก ลบ () บนวัตถุ ที่สอง ผู้ทำลาย เรียกว่า การลบ destructor , โทร ลบ () หลังจากทำลายวัตถุ หากวัตถุถูกทำลายแต่ไม่ ลบแล้ว จากกอง เรียก โอเปอเรเตอร์ ลบ มันผิด.