面試題1 賦值運算子函式

2021-10-05 20:44:49 字數 620 閱讀 3077

class

cmystring

當面試官要求應聘者定義乙個賦值運算子函式時,他會在檢查應聘者寫出的**時關注如下幾點:

cmystring& cmystring::

operator=(

const cmystring &str)

delete

m_pdata;

m_pdata =

newchar

[strlen

(str.m_pdata)+1

];strcpy

(m_pdata, str.m_pdata)

;return

*this

;}

在前面的函式中,我們在分配記憶體之前先delete釋放了例項m_pdata的記憶體,如果此時記憶體不足導致new char丟擲異常,則m_pdata會成為乙個空指標,這樣非常容易導致程式崩潰。

cmystring& cmystring::

operator=(

const cmystring &str)

return

*this

;}

面試題1 賦值運算子函式

面試題1 為如下cmysting的宣告,新增賦值運算子函式。class cmystring 注意事項 1.是否把返回值型別宣告為該型別的引用,並在函式結束前返回例項自身的引用 即 this 2.是否把傳入的引數的型別宣告為常量引用。3.是否釋放例項自身的記憶體。4.是否判斷傳入的引數和當前的例項是不...

面試題1 賦值運算子函式

面試題1 為如下cmysting的宣告,新增賦值運算子函式。class cmystring 注意事項 1.是否把返回值型別宣告為該型別的引用,並在函式結束前返回例項自身的引用 即 this 2.是否把傳入的引數的型別宣告為常量引用。3.是否釋放例項自身的記憶體。4.是否判斷傳入的引數和當前的例項是不...

面試題1 賦值運算子函式

題目 如下型別為cmystring的宣告,請為該型別新增賦值運算子函式。class cmystring 賦值運算子 函式 cmystring cmystring operator const cmystring str 當記憶體不夠時,new char會丟擲異常,分配記憶體失敗,m pdata將是乙...