I have a class A.
classes B and C are interfaces that derives from class A.
      A
    /   \
   B     C
now I have to implement the classes D and E for both B and C.
and then there are some classes: FDB, GDC, HEC, IEB, JDB, KDC, LEB, MEC (while DB and DC in the end of the name of these classes means that the class uses D and B for the ending of DB, D and C for DC, E and B for EB, etc..
so:
class A..
class `B`: public virtual `A`..
class `C`: public virtual `A`..
class `D`: public B, public `C`..
class `E`: public B, public `C`..
class `FDB`: public `D`..
class `GDC`: public `D`..
class `HEC`: public `E`..
class `IEB`: public `E`..
class `JDB`: public `D`..
class `KDC`: public `D`..
class `LEB`: public `E`..
class `MEC`: public `E`..
but then I have a diamond inheritance and I don't want it.
can someone suggest another design please?
any help appreciated!
 
     
    