【問題描述】
自行編寫**完成自己的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類的實現
首先我們先來看看深淺拷貝的區別 淺拷貝是指將物件中的數值型別的字段拷貝到新的物件中,而物件中的引用型字段則指複製它的乙個引用到目標物件。如果改變目標物件 中引用型字段的值他將反映在原是物件中,也就是說原始物件中對應的字段也會發生變化。深拷貝與淺拷貝不同的是對於引用的處理,深拷貝將會在新物件中建立一 ...