类定义中产生编译器错误的结构实例
Instance of struct inside class definition producing compiler error
在头文件中,我有一些效果:
class MoveableObject
{
public:
static float Gravity;
static float JumpSpeed;
static float MoveSpeed;
struct State;
struct Derivative;
State current;
State previous;
};
当尝试编译时,我得到错误:
12:9: error: field 'current' has incomplete type
13:9: error: field 'previous' has incomplete type
这可能是一个非常基本的错误,但我被难住了。谢谢。 前向声明,例如:
struct State;
struct Derivative;
只适用于指针或引用的声明(因为编译器总是知道指针或引用的大小;但是它不能猜测用户定义类型的大小)。
如果你想保持你的类现在的样子,你必须包含定义结构体State的头文件。
否则,切换到指针!
在问题中的代码中,State
是MovableObject
内部的嵌套类型。为了能够在MovableObject
中创建State
类型的成员,State
的定义必须内联到MovableObject
的定义中:
class MovableObject {
public:
struct State { ... };
State current;
};
相关文章:
- 创建结构的数组时遇到分段错误
- 使用具有结构不完整类型错误的模板
- 在头文件和 cpp 文件中使用一次 #pragma 时出现结构重定义错误
- 导致Segmentation错误的结构中的矢量
- 编译器指出结构和 int 说明的错误 2059
- 当结构位于单独的头文件中时'unregistered datatype'在 QML 中出现Q_GADGET错误
- 在 C 函数中返回结构会导致分段错误
- C++ 结构错误"调用'erase'没有匹配函数
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 结构中的错误"Incomplete type is not allowed"
- 体系结构x86_64的未定义符号:链接器错误
- 在另一个结构中声明内部结构会导致错误:结构使用无效
- 如何编写一个错误结构,该结构可以包含不同的强键枚举作为错误代码
- 错误:结构的初始值设定项太多
- 带有结构和指针的程序错误(结构,C++)
- 错误:结构的正向声明
- 使用结构体作为参数:错误:结构体未定义
- 定义错误结构体中的枚举
- "Was not declared in this scope"错误结构定义。C++
- GCC中可能的错误:结构中的文字字符串类型