Effective C++讀書筆記之十二:複製物件時勿忘其每一個成分
阿新 • • 發佈:2019-01-02
當你編寫一個copying函式,請確保:1.複製所有local成員變數。2.呼叫所有base classes內的適當的copying函式class Date{...}; class Customer { public: ... private: std::string name; Date lastTransaction; }; class PriorityCustomer:public Customer { public: PriorityCustomer(const PriorityCustomer& rhs); PriorityCustomer& operator=(const PriorityCustomer& rhs); ... private: int priority; }: PriorityCustomer::PriorityCustomer(const PriorityCustomer& rhs) :Customer(rhs),priority(rhs.priority) //呼叫base class的copy建構函式 {} PriorityCustomer& PriorityCustomer::operator = (const PriorityCustomer& rhs) { Customer::operator=(rhs); //對base class成分進行賦值動作 priority=rhs.priority; return *this; }