I have seven classes C1,C2,C3,C4,C5,C6,C7 such that:

1) C2,C3 are derived from C1
2) C4 is derived from C2 and C5 is derived from C3
3) C6 is derived from C2 and C3 (Multiple)
4) C7 is derived from C4, C5 and C6 (Multiple)

Here the question is for which classes I have to derive virtually so that I can aceess a function defined in C1 in C7 with out conflicts.