我在编译循环依赖时遇到问题.我做了一些研究,人们建议使用前瞻性声明.我仍然遇到问题,因为具有前向声明的类正在使用转发类中的方法.这导致编译器给出错误"A类具有不完整的字段b".如何绕过A需要B的循环依赖,B需要A?
啊:
#ifndef A_H_
#define A_H_
#include <iostream>
//#include "B.h"
class A
{
class B;
private:
B b;
public:
A();
~A();
void method();
};
#endif
Run Code Online (Sandbox Code Playgroud)
A.cpp:
#include <iostream>
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::method()
{
b.method();
}
Run Code Online (Sandbox Code Playgroud)
BH:
#ifndef B_H_
#define B_H_
#include <iostream>
//#include "A.h"
class B
{
class A;
private:
A a;
public:
B();
~B();
void method();
};
#endif
Run Code Online (Sandbox Code Playgroud)
B.cpp:
#include <iostream>
#include "B.h"
B::B()
{
}
B::~B()
{
}
void B::method()
{
a.method();
}
Run Code Online (Sandbox Code Playgroud)