C++ c+;中的成员为Listclass父级的Itemclass+;

C++ c+;中的成员为Listclass父级的Itemclass+;,c++,class,self-reference,C++,Class,Self Reference,我知道,标题让人困惑。但是我不知道还有什么其他的方法来解释它。问题如下: 我有两节课。一个是Listclass,另一个是Itemclass。因此Listclass有一个Itemobjects列表(std::vector)。但是现在我想在itemclass中使用一个父成员,它引用了存储它的Listclass(或对象) 但是C++禁止这样的东西,因为它只会降低已经解析的类的成员。我过去主要使用Java,这不是问题 那么,甚至可以这样做吗?您需要可以与不完整类型一起使用的指针或引用 struct li

我知道,标题让人困惑。但是我不知道还有什么其他的方法来解释它。问题如下:

我有两节课。一个是Listclass,另一个是Itemclass。因此Listclass有一个Itemobjects列表(std::vector)。但是现在我想在itemclass中使用一个父成员,它引用了存储它的Listclass(或对象)

<>但是C++禁止这样的东西,因为它只会降低已经解析的类的成员。我过去主要使用Java,这不是问题


那么,甚至可以这样做吗?

您需要可以与不完整类型一起使用的指针或引用

struct list; // <-- forward declaration

struct item
{
    item(list &list_) : _list(list_) {}

    list &_list;
};

struct list
{
    std::vector <item> items;
};

struct list;//这不是不可能的。如果通过间接存储在一个或另一个中,则可以通过前向声明来实现,就像解析任何其他循环依赖一样。我会问你自己为什么你认为你需要它,谢谢。我担心得要命,因为我不得不改变我准备好的班级等级制度,你让我很开心!