无法在任何地方找到解决方案
这是我的文件布局
SDK.h
#pragma once
#include "Object.h"
#include "Panel.h"
Object.H
#pragma once
#include "SDK.h"
class BaseObject
{
etc...
}
Panel.h
#pragma once
#include "SDK.h"
class Panel : public BaseObject
{
etc...
}
然后是错误
Panel.h(5): error C2504: 'BaseObject' : base class undefined
有人可以告诉我如何正确地做到这一点?它可能是一个非常简单的解决方案:(
编辑:我看起来无法解决问题,我是否必须创建一个新文件并将其包含在.CPP文件中?答案 0 :(得分:1)
您没有包含有关无法编译代码的翻译单元的任何信息。因此,我在猜测。我的猜测是你首先要包括Object.h
:
Object.h
并将其标记为不再包含SDK.h
,暂停包含Object.h
并将其标记为不再包含Object.h
Panel.h
,暂停包含SDK.h
并将其标记为不再包含SDK.h
Panel
的定义,但未定义BaseObject
,但您收到错误此修复不包括SDK.h
或Object.h
中的Panel.h
。相反,Panel.h
应该包含Object.h
,并且两个标题都应该包含他们需要的任何内容。
答案 1 :(得分:0)
从Object.h中删除#include "SDK.H"
[最后的手段]如果问题仍未解决,请使用header guards
,此处为tutorial。