深入理解C 之 賦值運算子函式

2021-08-27 15:51:38 字數 846 閱讀 5041

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所指向的位址。例五 ...