Qt中两个类互相包含与引用

// 案例基础类

// a.h
class A { }

// b.h
class B { }
// 如果想在类A中使用类B,在类B中使用类A,应该怎么办

// a.h
// b.h
class A
{
    B *b
}

// b.h
// a.h
class B 
{
    A *a
}

// 上面的方法一定是编译失败的 ...

// 正确方法
// a.h
#include "a.h"
#include "b.h"
class A 
{
    B *b = new B();
    b.a = this;
    void hello() {};
}

// b.h
class A;
class B
{
    A *a;
}

// b.cpp
#include "b.h"
#include "a.h" // 只能在 b.cpp 里面 include a.h
B::B()
{
    a.hello();
}


// 注意:
// 重点在哪里,重点就在 .h 文件里面用 class A 而不要 include a.h
// 那在哪里 include a.h 呢,然后是在 .cpp 里面 ... 就这么简单 ...