ฉันมีปัญหาในการทำความเข้าใจย่อหน้าต่อไปนี้ที่อ้างอิงจากcppreferenceเกี่ยวกับConstructorปริยาย ฉันค้นหา stackoverflow แล้วแต่ยังไม่ได้รับคำตอบที่ชัดเจน ได้โปรดช่วยด้วย
คอนสตรัคค่าเริ่มต้นเล็กน้อยเป็นตัวสร้างที่ไม่มีการดำเนินการ ชนิดข้อมูลทั้งหมดที่เข้ากันได้กับภาษา C (ชนิด POD) สามารถเริ่มต้นสร้างได้เล็กน้อย ซึ่งแตกต่างจากใน C อย่างไรก็ตามวัตถุที่มีตัวสร้างเริ่มต้นเล็กน้อยไม่สามารถสร้างได้โดยการแปลหน่วยความจำที่สอดคล้องกันอย่างเหมาะสมเช่นหน่วยความจำที่จัดสรรด้วย std :: malloc: การจัดวางตำแหน่งใหม่จำเป็นต้องแนะนำวัตถุใหม่อย่างเป็นทางการ
โดยเฉพาะอย่างยิ่งถ้านวกรรมิกเริ่มต้นเล็กน้อยไม่ทำอะไรเลยทำไมเราไม่สามารถตีความการจัดเก็บและตีความว่ามีวัตถุที่มีประเภทที่กำหนด คุณช่วยยกตัวอย่างสำหรับพฤติกรรมที่ไม่ได้กำหนดซึ่งอาจเป็นสาเหตุได้หรือไม่?
*reinterpret_cast<float*>(&someNonFloatObject) = 0.1f;
สำหรับเหตุผลที่คล้ายกันว่าคุณไม่สามารถเพียงแค่ C ++ มีแนวคิดเกี่ยวกับวัตถุและอายุการใช้งานของวัตถุที่ระบุในเครื่องนามธรรมและเพียงเพราะไม่มีคำสั่ง CPU ในการสร้างวัตถุจากที่เก็บข้อมูลไม่ได้หมายความว่าไม่มีความแตกต่างในเครื่องนามธรรม