(預設的淺拷貝就可以完成)
#include
using
namespace std;
class
person
person
(int a,
int b):a
(a),
b(b)
void
showperson
(void)~
person()
};void
test01()
intmain
(int argc,
char
*ar**)
指標作為類的成員:
1、拷貝建構函式必須自定義(預設拷貝構造是淺拷貝)
2、必須過載=運算子 (預設=號運算子是淺拷貝)
#include
#include
using
namespace std;
class
person
person
(char
*name)
person
(const person &ob)
//ob代表的就是舊物件
~person()
}void
showperson
(void
)//成員函式 過載=運算子
person&
operator
=(person &ob)
//ob == ob1
//申請空間
this
->name =
newchar
[strlen
(ob.name)+1
];//拷貝內容
strcpy
(this
->name,ob.name)
;return
*this
;//重點}}
;void
test01()
intmain
(int argc,
char
*ar**)
//過載== ==出現在判斷語句中
bool
operator
==(person &ob)
return
false;}
//過載!= !=出現在判斷語句中
bool
operator
!=(person &ob)
return
false
;}
void
test02()
else
if(ob1 != ob3)
else
}
運算子過載 賦值運算子的過載
有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個int型別變數賦值給乙個complex物件,或把乙個 char 型別的字串賦值給乙個字串物件,此時就需要過載賦值運算子 注意 賦值運算子 只能過載為成員函式 賦值運算子過載例項示例 include include using namespace ...
過載賦值運算子
1 注意過載賦值運算子和,運算子必須定義為類的成員函式。2 注意 如果程式不提供顯示的賦值運算子則系統會提供乙個預設的賦值運算子。3 什麼時候過載賦值運算子 當類中含有指標成員時,一般都要重定義類的賦值運算子。4 過載賦值運算子時應有處理語句m m的情況。其中m是某乙個類的物件。如果不處理這樣的語句...
賦值運算子過載
在下面類中實現 class cmystring 為了寫出乙個完整的賦值運算子過載函式,我們要考慮以下幾個問題 一步步解決上述的問題,我們可以編寫出經典的演算法 cmystring cmystring operator const cmystring str return this 考慮到異常安全性的...