我有一个带有两个菱形的类层次结构,这是由于必须扩展装饰器模式中的所有类(它们实际上已经扩展):namespace_sandbox{classA{public:virtual~A(){}virtualvoidfoo()=0;};classADecorator:publicvirtualA{private:A*decoratedA;public:ADecorator(A*a):decoratedA(a){}voidfoo(){returndecoratedA->foo();}};classAImpl:publicvirtualA{public:voidfoo(){};};classB:pu