c++:尚未声明
C++: Has Not Been Declared
我在任何地方都看到过这种类型的错误,尽管我看过答案,但似乎没有任何帮助。
我得到以下代码段的错误:
错误:'A'未被声明
B.h:
#include "A.h"
class B{
public:
static bool doX(A *a);
};
A.h:
include "B.h"
class A{};
运行我已经尝试过的事情的清单:—姓名拼写正确- A在A.h中—没有命名空间-无模板-没有宏
我有其他类可以找到A很好。我能想到的唯一一件事就是"静态"引起了问题。
将include
替换为前向声明:
//B.h
class A;
class B{
public:
static bool doX(A *a);
};
只在必要时包含文件。
同样,使用include守卫。这将防止其他棘手的问题,如重新定义& &;div。
如果你有两个头文件相互包含,你最终会产生一个循环依赖,并且由于预处理器的工作方式,这意味着一个头文件将在另一个头文件之前定义。
为了解决这个问题,我将避免在B.h中包含A.h,而只是向前声明:class A;
class B{
public:
static bool doX(A *a);
};
可以在b.p中包含A.h。cpp
相关文章:
- #ifdef和未声明的标识符
- 未声明的标识符编译暗黑破坏神 2 程序"muleview"
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- Google protobuf 时间戳未声明标识符,在 Windows 上具有C++
- 在气泡排序程序中未声明错误功能
- 我在范围内未声明的错误类有问题
- 使用未声明的标识符"sqrt"?
- 我包含了<winuser.h>,但编译器在MonitorFromWindow上抛出"未声明"
- 对类 (C++) 中的私有变量使用未声明的标识符
- 我的代码中有错误,未声明的标识符
- 未定义的标识符/未声明
- 错误:在 C++ 'std'使用未声明的标识符
- 在编译器之前检测未声明的标识符
- 使用未声明的标识符'temp'
- 使用未声明的标识符"yylex"和"yyin"?
- 使用"class"关键字,后跟未声明的标识符
- 未声明的标识符错误,但变量定义正确 (?)
- C2065 'cout':未声明的标识符
- 在此范围内未声明错误"Clreol"
- C++模板模板参数中未声明的标识符