即使在预定义的情况下找到类也会出错

-1 c++ class object incomplete-type

class Slice ;

class Apple{
  ...
  Slice x;
};

class Slice{
    ...
};    
Run Code Online (Sandbox Code Playgroud)

即使我定义了Slice类存在.当我在我的Apple类中调用它来创建一个Slice对象'x'时,编译器给了我一个错误:字段x有一个不完整的类型.如果我交换类的顺序,以便首先获得Slice,则错误消失并且程序编译没有任何问题.

在C++中声明类的顺序非常类似的问题 了.但由于某些原因,预定义的类对我来说不起作用.

如果你需要特定的http://gyazo.com/cf6fdf2894c34afba4ef0e352510fcfd我的问题的图片 它只是我学习如何在另一个对象里面改变对象的状态时所做的一些乱码.

Pau*_*zie 5

class Slice;

如果您随后声明指针或对不完整类型的引用,而不是在您使用该类型的实例时,则前向声明会起作用.

您的Apple类正在使用完整的实例Slice,因此编译器需要知道Slice实际的内容才能正确布局Apple类.由于Slice是不完整的类型,编译器会给出错误.

要解决您的问题,您可以SliceApple类中声明指针或引用.