在析構函式上犯了個愚笨的錯誤

2021-08-22 18:59:44 字數 381 閱讀 1488

當你的乙個類與某乙個類的時候,只需要將你這個類中特有的變數析構就可以了

你不要在關心繼承類中的變數。

上午編碼

splaytree繼承了binarytree

其中沒有任何自己特有的成員變數。

然後在~splaytree()中寫到clearsubtree(this->head);

其實這一句已經在~binarytree()中寫過了。

結果就拋了個exception。

於是剛剛考慮下virtual虛構函式。發現自己沒有使用到多型,只是想把**重用,也就沒有再使用virtual的必要。

或許以後在考慮下這幾個樹之間的錯綜複雜的關係。

現在把~splaytree()中的內容清空。

一切恢復正常。

類的預設成員函式上(構造 析構和拷貝建構函式)

1.建構函式 2.析構函式 3.拷貝建構函式 4.賦值操作符過載 5.預設拷貝構造與賦值運算子過載的問題 6.const成員函式 7.取位址及const取位址操作符過載 在乙個空類中如果什麼成員都沒有,依然會有6個預設的成員函式 建構函式是乙個特殊的成員函式,名字與類名相同,建立類型別物件時由編譯器...

php在析構函式中的工作目錄問題

前兩天為了寫乙個日誌類,用到在析構函式中寫檔案,發現了php乙個很怪異的地方,不知道是不是bug,拿出來分享一下 如下,在析構函式的當前工作目錄竟然變為了apache目錄,害的我寫檔案寫錯地方了 更奇怪的是,我不執行write方法時,析構函式的工作目錄是正確的,也是 的執行目錄,當我執行過write...

c 只在基類中用虛析構函式的原因

c 的多型性是通過虛函式來實現的,虛函式的出現使得動態鏈結成為可能。基於建構函式的特點,不能將建構函式定義為虛函式,但可以將析構函式定義為虛函式。一般情況 當派生類的物件從記憶體中撤銷時,會先呼叫派生類的析構函式,然後自動呼叫基類的析構函式,如此看來析構函式也沒有必要定義為虛函式。但 如考慮如下這種...