我有以下代码涉及三个类 A,B,C 我该如何避免呢?
A.h
#include "B.h
class A: public B, C{
virtual void doThings(C* c);
}
A.cpp
void doThings(C* c){
this->doWhat(); //Compilation Error doWhat call is ambigous!
}
B.h
class C; //forward declaration
class B{
public:
virtual void doThings(C* c) = 0;
}
C.h
#include "B.h"
class C{
public:
virtual void doStuff(B* b);
virtual void doWhat();
}