C ++基类未定义

时间:2019-10-21 15:27:21

标签: c++ class inheritance header include

我在每个头文件中创建了“对象”和“向量”类。 (“对象”是“向量”的父类) 并制作了包含两个类头文件的“ 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;
}

1 个答案:

答案 0 :(得分:2)

您已经忘记了Vector.h文件中的#include "Object.h"

看起来您的许多类也相互依赖-这有点代码味道,并且由于有循环include语句而导致编译器错误。如果Engine包含Object,而Object包含Engine,则您将无法编译-其中之一始终是不确定的。

相关问题