[英]C++ base class undefined
我在每个 header 文件中制作了 class 'Object' 和 'Vector'。 ('Object' is parent class of 'Vector') and made 'Engine.h' header file that include both class header file.
构建成功。 但是,如果我创建空的“Object.cpp”文件会出错。 像这样 'Vector.h(7,2): error C2504: 'Object': base class undefined'
你能告诉我为什么'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;
}
您忘记在 Vector.h 文件中添加#include "Object.h"
。
看起来你的很多类都相互依赖——这有点代码味道,而且由于你有循环include
语句,它会导致编译器错误。 如果Engine
包括Object
和Object
包括Engine
,则无法编译 - 其中之一总是未定义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.