避免由C++引起的循环引用包括头文件

MRM*_*MRM 0 c++ include cyclic-reference

我有3个类:A,B和C.C #include由B编辑,B #includ由A编辑.在C类中,我为按钮定义了一个处理程序,当按下按钮时,C将PostMessage对象A.我在C中包含A,我将有一个循环引用,那么我该怎么做才能避免这种循环引用?

编辑:所有包含都是在实现文件中.

Luc*_*ore 7

您应该使用前向声明.由于C不是所有者A,我假设你有一个指针作为成员.所以你不需要包括:

class A; //forward declaration
class C
{
    A* a;
};
Run Code Online (Sandbox Code Playgroud)

在实现文件中,您将包括A.h但是没关系.另外,如果你可以使用前置声明中A.h,并B.h在可能的情况.