析構(gòu)函數(shù)為什么是虛函數(shù) c 構(gòu)造函數(shù)中使用new,析構(gòu)函數(shù)用delete刪除,出錯?
c 構(gòu)造函數(shù)中使用new,析構(gòu)函數(shù)用delete刪除,出錯?因此,具有指針成員的類必須定義一個復(fù)制構(gòu)造函數(shù),否則默認(rèn)的復(fù)制構(gòu)造函數(shù)將直接復(fù)制指針的地址,而A3。Add(A1,A2)將以這種方式出現(xiàn),
c 構(gòu)造函數(shù)中使用new,析構(gòu)函數(shù)用delete刪除,出錯?
因此,具有指針成員的類必須定義一個復(fù)制構(gòu)造函數(shù),否則默認(rèn)的復(fù)制構(gòu)造函數(shù)將直接復(fù)制指針的地址,而A3。Add(A1,A2)將以這種方式出現(xiàn),當(dāng)臨時變量A1和A2在函數(shù)中生存時釋放指針,原來的A1和A2的指針空間也將被釋放。因為它是地址的副本,所以臨時變量使用與原始對象中指針成員相同的地址,外加自定義副本構(gòu)造函數(shù)。注意你的析構(gòu)函數(shù)也是錯誤的