代理类

问题提出:由于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.  示例图:

  

原文地址:https://www.cnblogs.com/suui90/p/15224785.html