析構函式和建構函式未配對

發布 科技 2024-07-27
8個回答
  1. 匿名使用者2024-01-31

    有些程式肯定說它被建造了三次,解構了三次。

    我執行了您的程式,結果如下:

    thsths

    overoverover

    按任意鍵繼續,你會說這顯然是建造了兩次,摧毀了三次嗎?

    原因是 peson 預設有乙個複製建構函式,當你呼叫 setage2 函式傳遞值時,你呼叫 person 預設複製建構函式來構造乙個物件 a,因為呼叫函式時會解構 a。 因此,它實際上構造了三次,解構了三次,但您看不到預設的複製建構函式為您列印資訊。

    每個類都有乙個析構函式,至少乙個建構函式,甚至您未顯示的定義建構函式也有乙個預設的複製建構函式。

  2. 匿名使用者2024-01-30

    它不必成對,建造和破壞都可以存在。 但是在乙個函式中,只能有乙個析構函式。

    因為析構函式是無引數的,沒有返回值,所以從C函式過載原理可以看出,這樣的函式只能有乙個。

    建構函式可以根據引數過載,因此可以有多個建構函式。

  3. 匿名使用者2024-01-29

    ;void person::setage2(person a)age = ;

    在這樣做的過程中,他們實際上共享了一段記憶,當然他們解構了一次。

    嘗試一次,看看它是否溶解了兩次。

  4. 匿名使用者2024-01-28

    乙個類中可以有多個建構函式,並且只有乙個析構函式。

    建構函式是一種特殊方法。 它主要用於在建立物件時初始化物件,即為物件成員變數賦值初始值,並且始終與建立物件的語句中的 new 運算子一起使用。 乙個特定的類可以有多個建構函式,這些建構函式可以通過引數的數量或引數的型別來區分,即建構函式的過載。

    析構函式名稱也應與類名相同,但函式名前面有乙個位逆變器,不能有任何引數且沒有返回值(包括 void 型別)。 析構函式與建構函式相反,在物件結束其生命週期時自動執行析構函式,例如,當物件所在的函式已被呼叫時。 所以只能有乙個析構函式,不能過載。

  5. 匿名使用者2024-01-27

    可以有多個建構函式,因為它可以過載。

    至於析構函式,只有乙個。

  6. 匿名使用者2024-01-26

    您可以有多個建構函式,只有乙個析構函式。

  7. 匿名使用者2024-01-25

    析構函式與建構函式相反,當物件超出其作用域時(例如,當物件所在的函式已被呼叫時)自動執行析構函式。 析構函式通常用於進行“清理”。

    (例如,建立乙個帶有 new 的物件以開啟一段記憶體空間,在退出之前,應該在析構函式中使用 delete 釋放該空間)。

  8. 匿名使用者2024-01-24

    關於析構函式的論點是不正確的。 基圈。

    a.只有乙個析構函式。

    b.析構函式沒有任何函式型別。

    c.析構函式與建構函式一樣,可以具有有形引數。

    d.析構函式的功能是在系統釋放物件之前進行一些記憶體清理。

    正確答案:析構函式和建構函式一樣,可以有有形的引數。

相關回答
7個回答2024-07-27

1. 建構函式。

並且析構函式不能被繼承。 建構函式和析構函式用於處理物件的建立和銷毀,它們只知道如何處理特定級別的物件。 因此,必須呼叫整個層次結構中的所有建構函式和析構函式,並且不能繼承。 >>>More

7個回答2024-07-27

迴避這個問題。 析構函式就是摧毀乙個物件。

12個回答2024-07-27

在析構函式中建立下乙個斷點。 看看就知道了。 在 & |,則對引用進行解構。 將顯示刪除指標。 返回型別中的引用與淺拷貝無關。

13個回答2024-07-27

與建構函式相比,析構函式在物件超出其作用域時自動執行析構函式,例如當物件所在的函式已被呼叫時。 析構函式通常用於完成“清理餘波”的工作(例如,建立乙個帶有 new 的物件以開啟一段記憶體空間,該記憶體空間應在析構函式中釋放,然後退出)。 >>>More

5個回答2024-07-27

方法過載也可以應用於 c 中的建構函式。 C 具有預設建構函式,您還可以使用引數定義建構函式。 建構函式必須與類同名,並且不能具有返回值。 因此,C 建構函式過載等價於不同數量的引數方法過載。 >>>More