c++ - 类定义中的结构实例产生编译器错误

标签 c++

在头文件中我有一些效果:

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 的头文件。

否则,切换到指针!

关于c++ - 类定义中的结构实例产生编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15607453/

相关文章:

c++ - 为什么迭代对象列表比迭代对象指针列表慢?

c++ - 在 Linux Mint QT 上构建 C++ Allegro 5 失败

c++ - GCC 没有从 .h 类自动解析 .cpp 包括

c++ - 为什么在头文件中声明 "static const"成员会导致链接器错误?

c++ - 编辑控件水印

c++ - 数组类错误 : too many initializers 的多维数组

c++ - Visual Studio 2008 C++。引用 DLL 项目时出现问题

c++ 表达式的求值。如何退出while循环?

c++ - 使用 C++ 通过 RS232 在 pc 和 arduino 之间进行串行通信

c++ - 使用 CRTP 和其他模板重载继承