问题是这样的:
PacsDBConnection定义在PacsDBIF.h中
CTableList定义在TableNameListNode.h中
现在TableNameListNode.h已经#include "PacsDBIF.h"
如果我们PacsDBConnection要加入CTableList gTableList变量就需要在PacsDBIF.h中#include "TableNameListNode.h"
这样就造成了两个头文件相互include的问题。
我使用过#ifndef #define #endif和class声明两种方法都没有解决。

解决方案 »

  1.   

    In PacsDBIF.h 的定义,class PacsDBConnection

    friend class CTableList;
    public:
    ........
    }
      

  2.   

    试试一个class前用
    #include""
    另一个class前用
    class 另一个类名;
      

  3.   

    use pointerfor example//PacsDBIF.hclass CTableList;
    class PacsDBConnection
    {
        CTableList* m_pTableList;
    }//PacsDBIF.cpp
    #include "PacsDBIF.h"
    #include "TableNameListNode.h"
    ...
    m_pTableList=new CTableList;
    ...
      

  4.   

    为什么要这样做了?想不明白,如果你要在一个头文件中使用另一个头文件中定义的类,你可以在这个类中使用提前声明,比如你要在classa.h中使用classb.h中的类b,而classb.h已经包含了classa.h,你就可以在classa.h中使用Class b;这样的提前声明(在class a的定义之前)而不是包含头文件class.b