c++ - 多个文件包含到单个类冲突

标签 c++ class c-preprocessor conflict

这里是问题的设置:

  1. MainFile.c调用文件SubFileA.h和SubFileB.h
  2. SubFileA.h需要调用类SigleClass.h
  3. SubFileB.h也需要调用类SingleClass.h

文件内容如下。

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 时,编译器返回了一个错误。

最佳答案

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

关于c++ - 多个文件包含到单个类冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10792965/

相关文章:

c# - 如何在C#中使用同一个类的多个线程

c++ - 遗留项目中的重复代码删除策略

C++ 控制台程序在完成前关闭。

c++ - build ICU 的问题

c# - 是否有必要在 C# 中至少有一个类

c# - 检测项目是否正在为 windows 8 或 wp 编译

c++ - 从用户输入的函数返回一个字符串

java - 检查加载的类是否可以从另一个分配?

c - c中的##是什么?

c - 宏计数参数