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