代理类
问题提出:由于C++具备继承的特性,若想使用一个容器(如数组)存储一系列的父类、子类对象,应该如何操作?
实现难点:
1. 基类数组:不能实现
2. 基类指针数组(间接层):对管理内存不友好
实在的解决方案:代理类
1. 代理是对对象的拷贝,具备对象的一切操作,并且可以实现容器中装入父类、子类各种对象的功能。
2. 实现实例
Vehicle是被代理的类
3. 代理类还要实现作用类似0指针的空代理(当没有代理的对象时,Vehile取NULL)
4. 使用代码
1 VehicelSurrogate vel[10] = {a, b, c}; // a是vehicle对象,b和c是vehicle的子类对象,vel[1] 拷贝了 b 并且可以实现 b 的功能,a和c同理
5. 示例图: