運算子之深度複製拷貝

2021-06-28 23:17:03 字數 663 閱讀 3775

#include"aa.h"

#include

#include

#include

class bb

bb (char *i)//深度複製

~bb()//析構函式

};int main()

#include"aa.h"

#include

#include

#include

class bb

bb (char *i)//深度複製

~bb()//析構函式

};int main()

以上這裡就會出錯,2次執行析構函式,對同乙個地方2次銷毀,所以就會出錯,則用賦值運算子過載來進行複製。

加上這個就不會出錯啦

bb & operator=(bb &b)

對於這樣,要拷貝建構函式

bb (bb &b)//一定要&,不然會進入死迴圈

總的為#include"aa.h"

#include

#include

#include

class bb

bb (bb &b)//

bb (char *i)//深度複製

~bb()//析構函式

bb & operator=(bb &b)

};int main()

C 之拷貝建構函式和複製運算子過載

1 c 拷貝建構函式 拷貝建構函式是為了解決如神明物件時候就用乙個已經存在的物件來初始化這個新的物件,如mystring a b 這裡b是已經存在mystring物件。但是這裡需要注意拷貝建構函式裡面的內部實現細節。這裡面其實是在這個a物件類的定義中定義了拷貝建構函式的格式如 mystring co...

複製運算子函式

題目 如下cmystring的宣告,請為該型別新增賦值運算子函式。pragma once include class cmystring 需要考慮以前四點 1 是否把返回值的型別宣告為該型別的引用,並在函式結束前返回例項的引用。只有返回乙個引用,才允許連續賦值操作。例如,有3個cmystring型別...

過載運算子,拷貝賦值運算子

一 過載運算子 在c語言當中遇到有很多的運算子,如 等等。如果我們用 對兩個物件進行判斷是否相等,系統就不樂意了,它不知道怎麼樣去判斷兩個物件是否相等?比如,我定義了乙個類,class a a obj1 a obj2 if obj1 obj2 錯誤,系統判斷不了 原因分析 系統遇到兩個物件之間的判斷...