C++未定义的基类

C++ base class undefined

本文关键字:基类 未定义 C++      更新时间:2023-10-16

我在每个头文件中创建了类"对象"和"矢量"。 ("对象"是"矢量"的父类( 并制作了包含两个类头文件的"Engine.h"头文件。

构建成功。 但是,如果我创建空的"对象.cpp"文件,则会出现错误。 像这样 'Vector.h(7,2(:错误 C2504:"对象":基类未定义">

你能告诉我为什么"对象.cpp"文件会出现此错误吗?

//Engine.h
#pragma once
#include "Object.h"
#include "Vector.h"
namespace Engine
{
}
//Object.h
#pragma once
#include "Engine.h"
namespace Engine
{
class Object
{
};
}
//Vector.h
#pragma once
#include "Engine.h"
namespace Engine
{
class Vector : public Object
{
};
}
#include <iostream>
#include "Engine.h"
int main()
{
return 0;
}

你忘了在 Vector.h 文件中#include "Object.h"

看起来很多类都相互依赖 - 这有点代码气味,并且由于您有循环include语句而导致编译器错误。如果Engine包含ObjectObject包含Engine,则无法编译 - 其中一个总是未定义的。