1 函式返回值宣告為該型別引用,並在函式結束前返回例項自身引用即(*this) ,只有返回引用才能進行連續賦值
2 傳入引數型別為常量引用,若果傳遞是例項,會呼叫一次複製建構函式,減少消耗,提高效率,加上const不會改變傳入例項值
3 釋放例項本身已有記憶體,避免造成記憶體洩露
4 判斷傳入例項和當前例項是否相同,相同返回,否則直接進行賦值,一旦釋放自身記憶體,傳入引數記憶體也被釋放了
具體示例:
#include #include class cmystring
;//定義時沒有預設值
cmystring::cmystring(char *pdata)
else
}cmystring::cmystring(const cmystring &str)
cmystring::~cmystring()
//注意傳遞引數型別和返回值型別
cmystring& cmystring::operator = (const cmystring& str)
// ********************測試**********************
void cmystring::print()
void test1()
// 賦值給自己
void test2()
// 連續賦值
void test3()
int main()
執行結果:
c 之賦值運算子函式
如下為型別cmystring的宣告,要求為該型別新增賦值運算子函式。class cmystring 這道題主要考察c 基礎語法如運算子函式 常量引用等,另外需要注意記憶體洩漏和 異常安全性。給出具體 中需要注意的地方都有備註。include includeusing namespace std cl...
Java 位運算子 深入理解
作用是對運算子兩側以二進位制表達的操作符按位分別進行 與 運算。而這一運算是以數中同樣的位 bit 為單位的。操作的規則是 僅當兩個運算元都為1時。輸出結果才為1。否則為0 示比例如以下 12 的二進位制為 0000 1100.5 的二進位制為 0000 0101.則 12 5 的二進位制為 000...
深入理解 C 指標 三 運算子 和
運算子 是取位址運算子,書上叫做 間接運算子 a的運算結果是乙個指標,指標的型別是a的型別加個 指標所指向的型別是a的型別,指標所指向的位址嘛,那就是a的位址。p的運算結果就五花八門了。總之 p的結果是p所指向的東西,這個東西有這些特點 它的型別是p指向的型別,它所占用的位址是p所指向的位址。例五 ...