我在每个头文件中创建了“对象”和“向量”类。 (“对象”是“向量”的父类) 并制作了包含两个类头文件的“ Engine.h”头文件。
构建成功。但是,如果我创建了一个'Object.cpp'文件为空,则会出现错误。像这样 'Vector.h(7,2):错误C2504:'对象':未定义基类'
您能告诉我为什么'Object.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;
}
答案 0 :(得分:2)
您已经忘记了Vector.h文件中的#include "Object.h"
。
看起来您的许多类也相互依赖-这有点代码味道,并且由于有循环include
语句而导致编译器错误。如果Engine
包含Object
,而Object
包含Engine
,则您将无法编译-其中之一始终是不确定的。