Architecture Diagram
SHALLOW COPY (Default memberwise copy - DANGEROUS for raw pointers):
Obj1: ptr (0x5000) ──┐
├──► Heap Array [ 10, 20, 30 ] (Double Free on destruction!)
Obj2: ptr (0x5000) ──┘
DEEP COPY (Custom Copy Constructor):
Obj1: ptr1 (0x5000) ──► Heap Array 1 [ 10, 20, 30 ]
Obj2: ptr2 (0x8000) ──► Heap Array 2 [ 10, 20, 30 ] (Independent copies!)