繁体   English   中英

C++ 基础 class 未定义

[英]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包括ObjectObject包括Engine ,则无法编译 - 其中之一总是未定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM