Rumah > Artikel > pembangunan bahagian belakang > Mengapa Kita Boleh Padamkan Penunjuk kepada Objek Malar (T const*) dalam C ?
Memadamkan Penunjuk kepada Konst (T const*)
Mengapakah mungkin untuk memadamkan penuding kepada objek malar (const T* p) menggunakan "padam p", walaupun pemusnah adalah ahli bukan const fungsi?
Penjelasan
Sebab membenarkan pemadaman penuding kepada const adalah terutamanya untuk menyokong penggunaan objek const dalam pengurusan memori dinamik. Pertimbangkan senario berikut:
<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>
Dalam contoh ini, objek yang ditunjuk oleh "f" tidak boleh diubah suai kerana penetapan constnya. Walau bagaimanapun, pemusnah "Foo" masih perlu dipanggil untuk memadamkan objek ini. Membenarkan "padam" digunakan pada penunjuk const memastikan bahawa pemusnah akan digunakan, memastikan pembersihan yang betul.
Adalah penting untuk ambil perhatian bahawa tingkah laku ini melangkaui objek yang dicipta secara dinamik. Walaupun untuk objek yang ditakrifkan dalam skop tempatan, pemusnah mesti dipanggil apabila skop dikeluarkan, tanpa mengira keteguhan objek. Contohnya:
<code class="cpp">{ const Foo f; // use it } // destructor called here</code>
Jika pemusnah tidak dibenarkan dipanggil pada objek const, adalah mustahil untuk menggunakan objek const dengan berkesan. Oleh itu, keupayaan untuk memadamkan penunjuk kepada const adalah penting untuk mengekalkan integriti bahasa dan prinsip berorientasikan objeknya.
Atas ialah kandungan terperinci Mengapa Kita Boleh Padamkan Penunjuk kepada Objek Malar (T const*) dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!