-
有些程式肯定說它被建造了三次,解構了三次。
我執行了您的程式,結果如下:
thsths
overoverover
按任意鍵繼續,你會說這顯然是建造了兩次,摧毀了三次嗎?
原因是 peson 預設有乙個複製建構函式,當你呼叫 setage2 函式傳遞值時,你呼叫 person 預設複製建構函式來構造乙個物件 a,因為呼叫函式時會解構 a。 因此,它實際上構造了三次,解構了三次,但您看不到預設的複製建構函式為您列印資訊。
每個類都有乙個析構函式,至少乙個建構函式,甚至您未顯示的定義建構函式也有乙個預設的複製建構函式。
-
它不必成對,建造和破壞都可以存在。 但是在乙個函式中,只能有乙個析構函式。
因為析構函式是無引數的,沒有返回值,所以從C函式過載原理可以看出,這樣的函式只能有乙個。
建構函式可以根據引數過載,因此可以有多個建構函式。
-
;void person::setage2(person a)age = ;
在這樣做的過程中,他們實際上共享了一段記憶,當然他們解構了一次。
嘗試一次,看看它是否溶解了兩次。
-
乙個類中可以有多個建構函式,並且只有乙個析構函式。
建構函式是一種特殊方法。 它主要用於在建立物件時初始化物件,即為物件成員變數賦值初始值,並且始終與建立物件的語句中的 new 運算子一起使用。 乙個特定的類可以有多個建構函式,這些建構函式可以通過引數的數量或引數的型別來區分,即建構函式的過載。
析構函式名稱也應與類名相同,但函式名前面有乙個位逆變器,不能有任何引數且沒有返回值(包括 void 型別)。 析構函式與建構函式相反,在物件結束其生命週期時自動執行析構函式,例如,當物件所在的函式已被呼叫時。 所以只能有乙個析構函式,不能過載。
-
可以有多個建構函式,因為它可以過載。
至於析構函式,只有乙個。
-
您可以有多個建構函式,只有乙個析構函式。
-
析構函式與建構函式相反,當物件超出其作用域時(例如,當物件所在的函式已被呼叫時)自動執行析構函式。 析構函式通常用於進行“清理”。
(例如,建立乙個帶有 new 的物件以開啟一段記憶體空間,在退出之前,應該在析構函式中使用 delete 釋放該空間)。
-
關於析構函式的論點是不正確的。 基圈。
a.只有乙個析構函式。
b.析構函式沒有任何函式型別。
c.析構函式與建構函式一樣,可以具有有形引數。
d.析構函式的功能是在系統釋放物件之前進行一些記憶體清理。
正確答案:析構函式和建構函式一樣,可以有有形的引數。
1. 建構函式。
並且析構函式不能被繼承。 建構函式和析構函式用於處理物件的建立和銷毀,它們只知道如何處理特定級別的物件。 因此,必須呼叫整個層次結構中的所有建構函式和析構函式,並且不能繼承。 >>>More
在析構函式中建立下乙個斷點。 看看就知道了。 在 & |,則對引用進行解構。 將顯示刪除指標。 返回型別中的引用與淺拷貝無關。
與建構函式相比,析構函式在物件超出其作用域時自動執行析構函式,例如當物件所在的函式已被呼叫時。 析構函式通常用於完成“清理餘波”的工作(例如,建立乙個帶有 new 的物件以開啟一段記憶體空間,該記憶體空間應在析構函式中釋放,然後退出)。 >>>More
方法過載也可以應用於 c 中的建構函式。 C 具有預設建構函式,您還可以使用引數定義建構函式。 建構函式必須與類同名,並且不能具有返回值。 因此,C 建構函式過載等價於不同數量的引數方法過載。 >>>More