EffectiveC++ Item12
来源:互联网 发布:淘宝网儿童棉服 编辑:程序博客网 时间:2024/04/30 10:15
看来如果类比较复杂,自己写copying fun还是比较麻烦的事情:
#include <iostream>#include<string>using namespace std;class Widget{public:Widget(int aData):m_Data(aData){}virtual void Swap(Widget &aRhs){int lTemp = aRhs.m_Data;aRhs.SetData(m_Data);m_Data = lTemp;}Widget& operator=(const Widget &aRhs){Widget lTemp(aRhs);Swap(lTemp);return *this;}virtual int GetData() const{return m_Data;}virtual void SetData(int aData){m_Data = aData;}private:int m_Data;};class Drived: public Widget{public:Drived(int aData):Widget(0),m_DriveData(aData){}void Swap(Drived &aRhs){Widget::Swap(aRhs);int lTemp = aRhs.m_DriveData;aRhs.SetData(m_DriveData);m_DriveData = lTemp;}Drived(const Drived &aDrived):Widget(aDrived),m_DriveData(aDrived.m_DriveData){}Drived& operator=(const Drived &aRhs){Drived lDrived(aRhs);Widget::operator=(lDrived);Swap(lDrived);return *this;}virtual int GetData() const{return m_DriveData;}virtual void SetData(int aData){m_DriveData = aData;}private:int m_DriveData;};int main(){Widget lTest1(10);Widget lTest2(-10);lTest2 = lTest1;cout << lTest2.GetData() << endl;Drived lDrived1(20);Drived lDrived2(-20);lDrived1 = lDrived2;cout << lDrived2.GetData() << endl;}
- EffectiveC++ Item12
- EffectiveC++
- effectiveC++
- EffectiveC++
- EffectiveC++10
- EffectiveC++ Item11
- EffectiveC++ Item21
- 《EffectiveC++》笔记
- EffectiveC++总结
- Effective C++ Item12 Note
- Item12 Declare overriding function override
- EffectiveC++ Item28 test case
- effectiveC++中的条款20
- effectiveC++读书笔记(九)
- Effectivec++读书笔记1
- EffectiveC++ 学习笔记1
- EffectiveC++实现(1)
- EffectiveC++学习(一)
- 谢谢你,勾引我老公!这文章看得心酸
- 从非Exchange 系统迁移邮件数据到Exchange Server!
- hdu 2846 字典树
- 性能改善的一种模式
- 诺基亚中国市场严重衰退销量剧减64%
- EffectiveC++ Item12
- 繁体字非主流伤感日志_親愛的,為什麼
- 利用无序数组实现优先队列并排序数组——ADT实现
- hdu 1869 六度分离
- c语言的变量
- 邻居发现(Neighbor Discovery)协议
- vs+cocos2d-x 导入第三方库 移植到android
- 字符串Hash函数对比
- Java中类名,接口名与文件名