C++里类之间的相互调用很麻烦,A调用B,B又调用A。 特别是A,B不在同一文件的时,得相互包含,include 关系很复杂 。可以写成这样:
//File A.h
class B;
class A
{
public:
...
privat:
...
B* b;
};
//end A.h
//File A.cpp
#include "B.h"
A::A()
{...}
A::~A()
{...}
...
//end A.cpp
//File B.h
#include "A.h"
class B
{
public:
...
private:
...
A* a;
};
//end B.h
//File B.cpp
#include "B.h"
B::B()
{...}
B::~B()
{...}
...
//end B.cpp