Mengapa Kita Boleh Padamkan Penunjuk ke Const dalam C ?

Patricia Arquette
Lepaskan: 2024-11-03 09:29:03
asal
883 orang telah melayarinya

Why Can We Delete a Pointer to Const in C  ?

Memadamkan Penunjuk kepada Const (T const*)

Dalam C , adalah fakta yang diketahui bahawa fungsi bukan ahli const tidak boleh dipanggil menggunakan penunjuk const. Walau bagaimanapun, pengecualian biasa ditemui apabila memadam penuding ke const, walaupun ia memanggil pemusnah kelas, yang bukan kaedah const. Anomali yang jelas ini menimbulkan persoalan: mengapa ini dibenarkan?

Jawapannya terletak pada menyokong pemusnahan objek yang diperlukan. Apabila objek dicipta secara dinamik, adalah penting untuk mempunyai cara untuk memadamkannya, walaupun ia adalah const. Ini dicapai dengan membenarkan pemadaman penunjuk const, walaupun terdapat sekatan pada mengubah suai objek const.

Kod berikut menunjukkan tingkah laku ini:

<code class="cpp">// dynamically create object that cannot be changed
const Foo * f = new Foo;

// use const member functions here

// delete it
delete f;</code>
Salin selepas log masuk

Contoh lain menunjukkan bahawa tingkah laku ini tidak terhad kepada objek yang dicipta secara dinamik:

<code class="cpp">{
 const Foo f;
 // use it
} // destructor called here</code>
Salin selepas log masuk

Jika pemusnah tidak dapat dipanggil pada objek const, ia akan melarang penggunaan objek const sepenuhnya. Elaun ini memastikan pemusnahan objek yang betul, tanpa mengira status constnya.

Atas ialah kandungan terperinci Mengapa Kita Boleh Padamkan Penunjuk ke Const dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan