String類(資源空間問題 深複製與淺複製)

2021-09-05 10:25:09 字數 933 閱讀 4665

【問題描述】

自行編寫**完成自己的string類。注意這裡的string字元s大寫,主要目的是與c++自帶的string類相互區分。

class string //請勿修改本類的宣告,請實現具體的成員函式。

;int main() //請勿修改主函式

請在建構函式、拷貝建構函式、析構函式的函式體裡新增相應的cout語句,輸出對應的提示。

【輸入形式】無輸入

【輸出形式】建構函式、拷貝建構函式和析構函式裡的提示語句

【樣例輸入】

【樣例輸出】

gouzao

gouzao hello

kaobei gouzao hello

xigou hello

xigou hello

xigou

#include

#include

using

namespace std;

class

string

;string::

string

(const

char

*str)

//建構函式

else

}string::

string

(const string &r)

//拷貝建構函式

string::

~string()

//析構函式

else

delete

mydata;

}int

main()

//請勿修改主函式

String類之 深拷貝

上篇部落格我們說淺拷貝存在同一塊資源被多次釋放的問題,那麼這篇部落格就是給淺拷貝擦屁股,解決它遺留下來的問題。解決這個問題,我們可以考慮單獨給 s2 開闢一塊空間,只將 s1 裡的內容拷貝到 s2。看一看我們 是怎麼實現的吧 class string else 普通版版本 string const ...

String類,淺拷貝,深拷貝

想要使用c 中的類那麼必須要有它的標頭檔案,include 首先來看下面乙個 這個程式很簡單,但是如果有乙個空指標呢?那麼就需要判斷了,並且用預設值把有引數的string和沒有引數的string合併在一起,那這個程式只需要做下面的改變 既然你的建構函式開闢了一段空間,那麼就需要釋放掉,此時就需要析構...

深拷貝 String類的實現

首先我們先來看看深淺拷貝的區別 淺拷貝是指將物件中的數值型別的字段拷貝到新的物件中,而物件中的引用型字段則指複製它的乙個引用到目標物件。如果改變目標物件 中引用型字段的值他將反映在原是物件中,也就是說原始物件中對應的字段也會發生變化。深拷貝與淺拷貝不同的是對於引用的處理,深拷貝將會在新物件中建立一 ...