c++ 代理类
来源:互联网 发布:亚马逊 推荐算法 编辑:程序博客网 时间:2024/06/10 22:20
c++ 沉思录学习
代理类
c++ 沉思录介绍代理类,由一个需求引入,如下:
设计一容器,使此容器有包含不同类型的而彼此相关联的对象?
如书中,以Vehicle为例,定义Vehicle抽象类,其他各个实际的类均继承此抽象类;此处使用继承技术。
1 传统处理方法
书中举3种处理方式进行说明,简单说明如下:
定义: Vehicle parking_lot[1000]; 此数组容器,存储停于停车场上的所有Vehicle
(1) 直接将定义的对象,赋值于parking_lot, 此种情况会丢失对象的某些数据,具体可参考c++之父的《c++程序设计原理与实践》
(2) 赋值对象的引用,引入的问题是当原对象delete后,parking_lot中的指针将成为悬挂指针,故需改进
(3) 此方法是对2的改进,将对象的副本赋值于parking_lot, 此时引入显示进行动态操作,而且增加动态内存管理的负担
2 基于上面的讨论,作者使用虚copy函数,由copy生产对象的副本,复制于parking_lot。具体实现可参加c++深思录,也可参考《c++程序设计原理与实践》
3 抽象类
抽象类:实质上是对Vehicle对象使用的类,以Vehicle对象为数据的一种类。通过定义此类的默认构造函数,赋值函数,赋值构造函数,析构函数,实现对对象的拷贝与引用。
(未完待续)
总结:抽象类通过将抽象类对象进行封装,实现将不同对象放入一个容器种的功能;其次通过抽象类种copy纯虚函数,实现对内存分配的控制;析构函数完成对对象的释放。
- 类型的代理类(c++)
- C++代理类的使用
- delegate,C#,代理
- 【C++】Chapter4:代理模式
- Objective C--代理模式
- Objective C 代理模式
- Objective-c 代理模式
- object-c代理
- Object-C代理模式
- [c++]代理对象模式
- [c++]代理对象模式
- C#WebRequest设置代理访问
- Objective-C 代理的例子
- Objective-C协议与代理
- Objective-C:类别&代理
- ODI 12C 启动代理
- UE4 代理事件(C++)
- UE4 代理事件(C++)
- Android如何使Activity全屏
- Skills for generating debug log file
- VC中给多个文件连续命名的技巧
- 一个比较隐蔽的c++释放空间错误
- 前端代码之丑(1):分支化技巧
- c++ 代理类
- 前端代码之丑(2):丑陋的条件语句
- Minutes of TMC#132
- nkoj1851——Get Tools from Doraemon's Pocket
- 转--精选微软经典的算法面试100题(我比较喜欢他说的“享受思考”的说法)
- 肖舸:C++到底还能做什么?
- Minutes of TMC#133
- CheckBoxList控件地DataTextField属性如何绑定多个字段?
- 在 Visual C++ 中使用内联汇编