Effective C++ 条款12
生活随笔
收集整理的這篇文章主要介紹了
Effective C++ 条款12
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
復制對象時,勿忘其每個成分
作者在本節(jié)條款提醒我們,在多重繼承的情況下進行copy或者copy assignment 的operator=的編寫時,一定要考慮base 類部分數據的初始化后者復制。
對照一下代碼:
class Cutsomer { …… private:string name;string telphone; };class PriorityCustomer:public Cutsomer { public:PriorityCustomer(){cout<<"PriorityCustomer Ctor"<<endl;}PriorityCustomer(const PriorityCustomer& rhs):priority(rhs.priority){cout<<"PriorityCustomer Copy Ctor"<<endl;}PriorityCustomer& operator=(const PriorityCustomer& rhs){cout<<"PriorityCustomer assign operator"<<endl;priority=rhs.priority;return *this;} private:int priority; };PriorityCustomer中的數據有下面
int priority;string name;string telphone;而真正copy或者copy assignment的時候僅僅處理了int priority;
我們能夠看到上面的代碼中忽視了base類部分的數據的處理。這時改動代碼例如以下:
轉載于:https://www.cnblogs.com/jhcelue/p/7053749.html
總結
以上是生活随笔為你收集整理的Effective C++ 条款12的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jmeter练习(5)关联升级版—For
- 下一篇: TypeError: HashUpdat