我必须通过类A和类B来进行类。类A包括B和B包括A.类A具有typedef shared_ptr共享,在类BI中需要声明字段成员类型A :: Shared。
#include "B.h"
class A {
public:
typedef shared_ptr<A> Shared;
};
#include "A.h"
class A;
class B {
public:
A::Shared mA;
};
IDE说无法解析共享类型。
解决 从两个头中删除#include指令,并使用前向声明。
class B;
class A {
public:
typedef shared_ptr<A> Shared;
};
class A;
class B {
public:
A::Shared mA;
};