Cara lain untuk melihatnya: arti yang tepat dari sebuah pointer const adalah bahwa Anda tidak akan dapat membuat perubahan pada objek yang diarahkan ke yang akan terlihat melalui itu atau pointer atau referensi lain ke objek yang sama. Namun saat sebuah objek hancur, semua penunjuk lain ke alamat yang sebelumnya ditempati oleh objek yang sekarang dihapus tidak lagi menjadi penunjuk ke objek itu . Mereka menyimpan alamat yang sama, tetapi alamat itu bukan lagi alamat objek apa pun (sebenarnya alamat itu mungkin akan segera digunakan kembali sebagai alamat objek yang berbeda).
Perbedaan ini akan lebih jelas jika pointer dalam C ++ berperilaku seperti referensi yang lemah, yaitu segera setelah objek dimusnahkan, semua pointer yang masih ada akan segera disetel ke 0
. (Itu adalah jenis hal yang dianggap terlalu mahal pada waktu proses untuk diterapkan pada semua program C ++, dan pada kenyataannya tidak mungkin membuatnya sepenuhnya dapat diandalkan.)
PEMBARUAN : Membaca ini kembali sembilan tahun kemudian, itu adalah pengacara. Sekarang saya menemukan reaksi asli Anda dapat dimengerti. Untuk melarang mutasi tetapi membiarkan kehancuran jelas bermasalah. Kontrak tersirat dari pointer / referensi const adalah bahwa keberadaan mereka akan bertindak sebagai penghambat penghancuran objek target, alias pengumpulan sampah otomatis.
Solusi yang biasa untuk ini adalah dengan menggunakan hampir semua bahasa lain.