刪除指向Const 的指標(T const*)
在C 中,眾所周知,非常量成員函數不能被刪除使用const 指標調用。然而,在刪除指向 const 的指標時會遇到一個常見的異常,即使它呼叫了類別的析構函數,而該析構函數不是 const 方法。這種明顯的異常現象提出了一個問題:為什麼允許這樣做?
答案在於支援對物件進行必要的銷毀。當動態建立物件時,必須有一種方法來刪除它們,即使它們是 const 的。這是透過允許刪除 const 指標來實現的,儘管修改 const 物件受到限制。
以下程式碼示範了此行為:
<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>
另一個範例表示此行為不受限制對於動態建立的物件:
<code class="cpp">{ const Foo f; // use it } // destructor called here</code>
如果無法在const物件上呼叫析構函數,則會完全禁止使用const 物件。這個餘裕確保了物件的正確銷毀,無論其 const 狀態為何。
以上是為什麼我們可以刪除 C 中的 const 指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!