ค้นหา ค้นรูป แผนที่ Gmail ไดรฟ์ ปฏิทิน แปลภาษา ภาพถ่าย อื่นๆ »
ลงชื่อเข้าสู่ระบบ
กูรูไม่ได้รับการสนับสนุนบนเบราว์เซอร์ของคุณ: คุณสมบัติบางอย่างอาจทำงานได้ไม่ถูกต้อง โปรดคลิกตรงนี่เพื่อดูรายชื่อเบราว์เซอร์ที่สนับสนุน
กูรู
แปล ให้หน่อยจ้าาาา อีกอัน
แปล ให้หน่อยจ้าาาา อีกอัน
Deallocate storage space

The first and second versions deallocate the memory block pointed by ptr (if not-null), releasing the storage space previously allocated to it by a call to operator new and making that pointer location invalid.

The third version does nothing.

The second and third versions cannot be implicitly called by the operator expression (the delete operator calls once the function operator delete for each of its arguments). Although they can be called explicitly as operator new function calls, their default definitions serve no particular purpose - they are provided as counterparts for the operator new functions and called accordingly when done automatically.

Global dynamic storage operator functions are special in the standard library:
All three versions of operator delete are declared in the global namespace, not in the std namespace.
The first and second versions are implicitly declared in every translation unit of a C++ program: The header <new> does not need to be included for them to be present.
The first and second versions are also replaceable: A program may provide its own definition, that replaces the default one, to produce the result described above.

operator delete can be called explicitly as a regular function, but in C++, delete is an operator with a very specific behavior: An expression with the delete operator, first calls the appropriate destructor (if needed), and then calls function operator delete to release the storage.
คำตอบ (1)
จัดเรียงตาม: คะแนน | เวลา
ลงชื่อเข้าใช้ หรือ ลงชื่อสมัคร เพื่อตอบคำถามนี้ได้เลย
Google ค้นเว็บ
Google ค้นรูป
เลือกวิดีโอ YouTube
ค้นหา
ป้อน URL
พิมพ์คำค้นหาของคุณลงในช่องเพื่อหาเว็บลิงก์
พิมพ์คำค้นหาของคุณลงในช่องเพื่อหาเว็บลิงก์
พิมพ์คำค้นหาของคุณลงในช่องเพื่อหาเว็บลิงก์
ช่องค้นหาต้องไม่ว่างเปล่า
วาง URL ในช่องด้านล่าง:
ไม่สามารถโหลดเว็บไซต์ได้
ค้นหาใน YouTube
เพิ่มลิงก์วิดีโอ
พื้นที่จัดเก็บ deallocate

รุ่นแรกและสอง deallocate บล็อกหน่วยความจำที่ชี้โดย PTR (ถ้าไม่ได้เป็น Null), การปล่อยพื้นที่จัดเก็บที่จัดสรรไว้ก่อนหน้านี้ได้โดยการเรียกร้องให้ผู้ประกอบการใหม่และทำให้สถานที่ชี้ว่าไม่ถูกต้อง

รุ่นที่สามไม่ได้ทำอะไร

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

ฟังก์ชั่นทั่วโลกดำเนินการเก็บข้อมูลแบบไดนามิกเป็นพิเศษในห้องสมุดมาตรฐาน :
ทั้งหมดสามรุ่นของผู้ประกอบการลบจะถูกประกาศใน namespace โลกไม่ได้อยู่ใน namespace ที่ STD
รุ่นแรกและตัวที่สองมีการประกาศโดยปริยายในทุกหน่วยการแปลของโปรแกรม C + + : <new> ส่วนหัวที่ไม่จำเป็นจะถูกรวมสำหรับพวกเขาที่จะนำเสนอ
รุ่นแรกและครั้งที่สองนี้ยังมีแบบถอดเปลี่ยนได้ : โปรแกรมอาจจะให้คำนิยามของตัวเองที่มาแทนที่อย่างใดอย่างหนึ่งของการเริ่มต้นในการผลิตผลที่อธิบายข้างต้น

ลบผู้ประกอบการสามารถเรียกได้อย่างชัดเจนว่าการทำงานปกติ แต่ใน C + +, ลบเป็นผู้ดำเนินการกับพฤติกรรมที่เฉพาะเจาะจงมาก : นิพจน์ด้วยตัวดำเนินการลบครั้งแรกที่โทร destructor ที่เหมาะสม (ถ้าจำเป็น), และจากนั้นเรียกผู้ประกอบการฟังก์ชั่นลบที่จะปล่อย การจัดเก็บข้อมูล
4/1/55
nok1240
เกี่ยวกับคำถามนี้
รางวัลคำตอบดีที่สุด 5 คะแนน
เปิดดูแล้ว 397 ครั้ง
มีคนตอบแล้ว 1 คำตอบ
คำถามที่เกี่ยวข้อง
คำตอบ: 1 คะแนน: 1
คำตอบ: 1 คะแนน: 0
คำตอบ: 13 คะแนน: 5
คำตอบ: 2 คะแนน: 5
คำตอบ: 4 คะแนน: 1
คำตอบ: 8 คะแนน: 7
คำตอบ: 1 คะแนน: 1
คำตอบ: 1 คะแนน: 1
x
©2013 Google - ข้อกำหนด - นโยบายเนื้อหา - ความเป็นส่วนตัว - หลักเกณฑ์ของชุมชน