多个文件包含到单个类冲突

时间:2012-05-29 04:12:37

标签: c++ class c-preprocessor conflict

以下是问题的设置:

  1. MainFile.c调用文件SubFileA.h和SubFileB.h
  2. SubFileA.h需要调用SigleClass.h类
  3. SubFileB.h还需要调用类SingleClass.h
  4. 以下是该文件的内容。

    MainFile.h包含以下行:

    #include "SubFileA.h"
    #include "SubFileB.h"
    ...
    



    SubFileA.h包含以下内容:

    #include "SingleClass.h"
    ...
    void InsertPendingRejectedTrx(SingleClass oLogic);
    ...
    



    SubFileB.h包含以下几行:

    #include "SingleClass.h"
    ...
    void InsertPendingRejectedTrx(SingleClass oAnotherLogic); //line 52
    ...
    



    SingleClass.h文件包含以下行:

    #ifndef SC_LOGIC
    #define SC_LOGIC
    ...
    [lots of codes]
    ...
    #endif
    




    以下是错误代码:

    SubFileB.h: At global scope:
    SubFileB.h:52: error: âSingleClassâ has not been declared
    



    当我尝试编译时,编译器会返回错误。它说,从SubFileB,“SingleClass”不包括在内。我该如何解决这个问题呢? 注意:代码之前已经有效,但是当我出于某些原因从SubFileB.h中包含SingleClass时,编译器返回了一个错误。

1 个答案:

答案 0 :(得分:0)

你需要集中你的头文件,创建一个头文件并在你给定的file.squid缓存服务器中包含你的头文件使用相同的算法。当然,你应该优先使用#include指令,因为它们一起依赖。