C++淺拷貝與深拷貝

問題: 如果類中有指針成員,則必須有拷貝構造函數和拷貝賦值函數 深拷貝和淺拷貝的區別是在對象狀態中包含其它對象的引用的時候,當拷貝一個對象時,如果需要拷貝這個對象引用的對象,則是深拷貝,否則是淺拷貝 如果採用簡單的淺拷貝,則兩類中的兩個指針將指向同一個地址,當對象快結束時,會調用兩次析構函數,而導致指針懸掛現象,所以,此時,必須採用深拷貝 深拷貝會從堆空間中另外申請數據來存儲數據 如下圖 注意:
相關文章
相關標籤/搜索