1. 程式人生 > >Effective C++讀書筆記之十二:複製物件時勿忘其每一個成分

Effective C++讀書筆記之十二:複製物件時勿忘其每一個成分

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;
}
當你編寫一個copying函式,請確保:1.複製所有local成員變數。2.呼叫所有base classes內的適當的copying函式