先看個例子:
class a {};
a a ;
a = a; // 注意這句
可能實際中,你不會這樣做,但是實際中,是有可能的,並且這樣做,也不違背語法。
but, 如果上面的例子中, 類a存在成員變數是指標的時候怎麼辦,自我賦值會發生什麼? 1.先將指標釋放 2.再見指標的位址賦值給變數。 問題來了: 可能存在淺拷貝而出現野指標的現象,
// c++11前
classs a
private:
a& operator = (const a & instance) {}
};// c++11後
classs a
a & operator = (const a &instance) = delete;
};
a& operator=(const a& instance)
C 技巧之operator操作符
cpp view plain copy template typename t class a private t m 又比如stl中的函式物件,過載 這是c 中較推薦的寫法,功能與函式指標類似,如下所示 c sharp view plain copy template struct a 2 ope...
C 技巧之operator操作符
cpp view plain copy template typename t class a private t m 又比如stl中的函式物件,過載 這是c 中較推薦的寫法,功能與函式指標類似,如下所示 c sharp view plain copy template struct a 2 ope...
C 函式物件operator
函式物件 定義了呼叫操作符 的類物件。當用該物件呼叫此操作符時,其表現形式如同普通函式呼叫一般,因此取名叫函式物件。舉個最簡單的例子 class a 類a中定義了操作符 a物件呼叫語句在形式上跟以下函式的呼叫完全一樣 int i 1 a func cout func i 與普通函式相比,函式物件比函...