gpt4 book ai didi

C++ 基类未定义

转载 作者:行者123 更新时间:2023-11-28 01:16:38 25 4
gpt4 key购买 nike

我在每个头文件中创建了类“Object”和“Vector”。('Object' 是 'Vector' 的父类)并制作了包含两个类头文件的“Engine.h”头文件。

构建成功。但是,如果我创建空的“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,则无法编译 - 其中之一总是会未定义。

关于C++ 基类未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58489492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com