การลบทำงานอย่างไรใน C ++
การลบทำงานอย่างไรใน C ++

วีดีโอ: การลบทำงานอย่างไรใน C ++

วีดีโอ: การลบทำงานอย่างไรใน C ++
วีดีโอ: สอน C++: การแทรก (insert) และลบ (erase) สมาชิกใน vector 2024, พฤศจิกายน
Anonim

เมื่อไหร่ ลบคือ ใช้เพื่อจัดสรรหน่วยความจำสำหรับ a C++ คลาสอ็อบเจ็กต์ ตัวทำลายของอ็อบเจ็กต์ เป็น เรียกว่าก่อนหน่วยความจำของวัตถุ เป็น จัดสรรคืน (ถ้าวัตถุมีตัวทำลาย) ถ้าตัวถูกดำเนินการไปที่ ลบ โอเปอเรเตอร์ เป็น ค่า l ที่ปรับเปลี่ยนได้ ค่าของมัน เป็น ไม่ได้กำหนดไว้หลังวัตถุ ถูกลบ.

คำถามคือความแตกต่างระหว่างการลบและการลบใน C ++ คืออะไร?

ทั้งคู่ใช้เพื่อจุดประสงค์เดียวกัน แต่ก็ยังมีบ้าง ความแตกต่าง , NS ความแตกต่าง เป็น: ลบ เป็น anoperator ในขณะที่ free() เป็นฟังก์ชันไลบรารี ลบ ปลดปล่อยหน่วยความจำที่จัดสรรและเรียก destructor แต่ free() de-allocatememory แต่ไม่เรียก destructor

อาจมีคนถามว่า C ++ ใหม่ทำงานอย่างไร เมื่อไหร่ ใหม่ ใช้เพื่อจัดสรรหน่วยความจำสำหรับ a C++ คลาสอ็อบเจ็กต์ คอนสตรัคเตอร์ของอ็อบเจ็กต์ถูกเรียกหลังจากจัดสรรหน่วยความจำแล้ว เมื่อจัดสรรอาร์เรย์โดยใช้คำสั่ง ใหม่ โอเปอเรเตอร์ มิติแรกสามารถเป็นศูนย์ได้ - the ใหม่ ตัวดำเนินการส่งคืนตัวชี้เฉพาะ

อาจมีคนถามว่า ตัวดำเนินการ new และ delete ใน C++ คืออะไร?

C++ รองรับการจัดสรรแบบไดนามิกและการจัดสรรคืนของวัตถุโดยใช้ ตัวดำเนินการใหม่และลบ . เหล่านี้ ตัวดำเนินการ จัดสรรหน่วยความจำสำหรับวัตถุจากพูลที่เรียกว่า thefree store NS โอเปอเรเตอร์ใหม่ เรียกฟังก์ชันพิเศษ โอเปอเรเตอร์ ใหม่ , และ ลบตัวดำเนินการ เรียกฟังก์ชันพิเศษ โอเปอเรเตอร์ ลบ.

ฉันจำเป็นต้องลบพอยน์เตอร์ C++ หรือไม่

1 คำตอบ คุณไม่ ต้องลบ มันและยิ่งไปกว่านั้น คุณไม่ควร ลบ มัน. หากโลกเป็นวัตถุอัตโนมัติ วัตถุนั้นจะถูกปลดปล่อยโดยอัตโนมัติ ดังนั้นด้วยตนเอง กำลังลบ NS ตัวชี้ คุณเข้าสู่พฤติกรรมที่ไม่ได้กำหนดไว้