析構函式和餐巾紙的關係

2022-08-26 09:09:11 字數 1236 閱讀 4038

話說吃完飯,端起餐盤,順便看了看邊上白富美一眼,這才走向**站,很是悠哉的將餐盤放上了殘食台上。本來該好好地結束這次晚餐,可是,尼瑪!

老子的手上被粘上了一坨油!

一坨油!

它在老子手上,像一坨翔一樣讓我噁心,我只好取出另外一張餐巾紙,將其弄掉。

尼瑪,細細一想,餐巾紙真是神器。我以前一直有乙個想法。若把在食堂吃飯當做類物件規則,那麼,去阿姨那打飯就相當於建構函式,將餐盤送回就相當於析構函式。但是,這裡面明顯錯誤了。

若是我在送餐盤這個過程中不小心在手上粘上了一坨油。

那尼瑪就是在析構函式中丟擲了異常。

編譯器會第二次呼叫析構函式嗎?

你以為你爸是李剛呢。

所以,髒的餐盤洗乾淨才是建構函式,這是在給食物(資源)分配地盤。而從大媽那搞到食物,僅僅是你開啟若干檔案描述符,為將來使用資源做準備而已。而送回餐盤,就相當於關閉若干個檔案描述符。而析構函式,是使用餐巾紙這個顯式過程和洗餐盤這個隱式過程。

為什麼說使用餐巾紙是顯式過程呢。是因為哥看到有些哥們不用餐巾紙。。。這就是不定義析構函式。

但洗餐盤又是必須的,所以,不管你有沒有用餐巾紙,這些事情都會有人去幹的。

同理,不論你有沒有定義析構,編譯器總會為你搞上一些動作的。比如,釋放記憶體。

ok,現在來說噁心的異常情況,那就是在**餐盤時候不小心手上沾了一坨翔這種噁心的東西。

尼瑪。如果你說你不管它,或者隨便在衣服上擦乾淨了,老子就服了你了。

關閉檔案描述符等資源。總會不小心沾惹異常。就像再小心,送餐盤的時候總會粘上點東西。

俗話說:常在河邊站哪有不濕手。

你要是先把餐巾紙丟了,或者說先呼叫了析構,那你就爽了,這個異常,這坨翔會讓你噁心到極點。

你若是不管它,你這手也比想幹啥了。

你若是隨便在衣服上擦,你整個人都噁心了。也就是說,整個系統就噁心了。

所以,騷年,哥用切身經驗告訴你,一定要最後丟餐巾紙。

也就是說,有異常這種事情,一定要在析構之前幹完。

好吧。就到這了。說得好噁心。

建構函式 析構函式和虛函式的關係

首先明確兩點 建構函式不可能定義為虛函式 虛函式的目的是通過父類引用或者指標呼叫子類的成員函式。而建構函式的目的是建立物件。建立子類物件時,將呼叫子類的建構函式,而不是父類的建構函式。子類的建構函式將使用父類的乙個建構函式。這種順序不同於繼承機制。因此,子類不繼承父類的建構函式,所以將類的建構函式宣...

C 析構函式和虛析構函式。

析構函式如果不是虛的話,基類的析構函式將不會被呼叫。多型時,也就是派生類被基類指標所指,或者被基類別名 虛析構函式,被呼叫時,其自身的析構函式和基類的析構函式都將會被呼叫。非虛的時候,不進行多型,只有基類的會被呼叫。純虛析構函式 定義的時候除了加 0 還需要給出函式的實現。因為當遞迴的呼叫析構函式時...

虛析構函式和protected析構函式

型別需要虛析構函式的另外乙個特徵 是該型別具有指標成員或引用成員。如果有指標成員和引用成員,則該型別通常需要實現析構函式以及拷貝操作。通常,乙個實現了析構函式的型別同時也需要實現拷貝建構函式與拷貝複製函式。1.如果乙個類有虛函式功能,它經常作為乙個基類使用。2.如果它是乙個基類,它的派生類經常使用n...