1. 程式人生 > >12複製物件時勿忘其每一個成分

12複製物件時勿忘其每一個成分

設計良好的面向物件系統會將物件的內部封裝起來,只留兩個函式負責物件拷貝。

如果物件增加了一個新的成員,則需要在所有的建構函式,拷貝函式中進行處理。否則會造成區域性拷貝。

如果要為derived classcoping函式,則必須小心的複製base class成分。

當你編譯一個copying函式是,你必須(1)複製所有的local成員變數(2)呼叫適當的base classcopying函式。

如果copy建構函式和copy assignment操作符函式有同樣的程式碼,則你可以用一個新的函式將他們封裝起來。

注意:

Copying函式應該確保複製“物件內所有的成員變數”,以及“所有base class

成分”

不要嘗試以某個copying函式實現另一個copying函式,應該將共同機制放進第三個函式中,並有兩個copying函式共同呼叫。