在成員函式中delete this指標

2021-05-12 16:50:30 字數 362 閱讀 7488

剛才在toplanguage上看到版主丟擲來的乙個問題,在成員函式中能不能delete this指標。

我覺得是可以的,delete操作一般是先呼叫析構函式,再呼叫delete運算子。而且delete之後,該記憶體不會立刻被釋放,只是做個標記,告訴作業系統這塊記憶體可以被釋放掉了。至於系統什麼時候會釋放是不知道的,所以delete this指標本身沒問題,只是不能在delete this之後,訪問物件的成員變數以及呼叫虛函式,因為成員變數和vptr是存放在該記憶體塊的,如果以後再去訪問,就是訪問已經被銷毀的記憶體。

但是一定要保證this物件是new出來的,不是在棧空間分配的,也不是在全域性空間分配的,也不能是new分配的。而且,在delete之後不能訪問該物件的資料成員和成員函式。

在單獨執行緒中執行物件成員函式

問題的提出 實際上所有執行緒都是用來處理c函式的,而不是c 類成員函式。標準庫中提供乙個api函式,這個函式以 函式指標作為執行緒的執行 並在單獨的執行緒中呼叫 函式。問題是在這樣的執行緒庫中不能建立執行物件成員函式的執行緒 只能使用普通的函式。因此,下列 是失敗的 啟動執行緒庫函式的執行緒 int...

const在類成員函式中的作用

程式通常不直接修改類物件。在必須修改類的物件時,應呼叫公有成員函式集來完成。為尊重類物件的常量性,編譯器必須區分不安全與安全的成員函式 即區分試圖修改類物件與不試圖修改類物件的函式 類的設計者通過把成員函式宣告為const,以表明它們不修改類物件。例如 class screen 只有被宣告為cons...

在C 中定義類成員函式指標

自 http www.cppblog.com shaker archive 2006 09 01 11924.html 一般的函式指標定義是這樣的 code begin typedef return type ffunctionpoint code end 類成員函式是不能被轉化成類似上例中的ffu...