賦值操作符
1、賦值必須返回對 *this 的引用
這與內建型別的賦值一致。而且, 因為賦值返回乙個引用,就不需要建立和撤銷結果的臨時副本
2、是否為自賦值
用if(this==&other)來判斷,若是,直接返回*this
否則,自賦值可能會導致dangling pointer
3、是否需要delete掉分配給*this的記憶體空間
如果不delete,直接賦值,會導致memory leak
加號操作符過載
1.一般而言,將算術和關係操作符定義為非成員函式
2.加法操作符並不改變操作符的狀態,操作符是對 const 物件的引用
3.為了與內建操作符保持一致,加法返回乙個右值, 而不是乙個引用
4.要返回的右值一般用複製建構函式建立區域性變數,不要自己新new乙個,否則當函式結束時沒法delete掉
C 過載賦值操作符
類過載賦值操作符一般都是作為成員函式而存在的,那函式應該返回什麼型別呢?參考內建型別的賦值操作,例如 int x,y,z x y z 15 賦值行為相當於x y z 15 也就是賦值操作應該返回左運算元的引用,因此,為了和內建型別相容,類中過載賦值操作符應該返回左運算元的引用,即 this,如下類a...
賦值操作符
與類要控制初始化物件的方式一樣,類也定義了該型別物件賦值時會發生什麼 sales item trans,accum trans accum 與複製建構函式一樣,如果類沒有定義自己的賦值操作符,則編譯器會合成乙個。過載操作符是一些函式,其名字為 operator 後跟著所定義的操作符的符號。因此,通過...
賦值操作符
預設的賦值操作符用於處理同類物件之間的賦值,不要與複製建構函式混淆.如果是建立新的物件,則呼叫複製 拷貝 建構函式,如果是修改已有物件的值,則呼叫賦值操作符 myclass aclass myclass bclass aclass 呼叫複製建構函式 myclass cclass cclass acl...