最近對對象賦值做了小測試
可以驗證這樣object2的a2指向的是object1的a1,並非object2的a1,因此建議不要使用默認的對象賦值,最好使用自定義賦值。
一點補充:如果是指向動態分配內存的pointer之類,直接使用默認的operator=就悲劇了,因爲它是member to member的直接copy。在析構時會調用兩次,這點從上述代碼例子也可以看出來。
最近對對象賦值做了小測試
可以驗證這樣object2的a2指向的是object1的a1,並非object2的a1,因此建議不要使用默認的對象賦值,最好使用自定義賦值。
一點補充:如果是指向動態分配內存的pointer之類,直接使用默認的operator=就悲劇了,因爲它是member to member的直接copy。在析構時會調用兩次,這點從上述代碼例子也可以看出來。