在我的应用程序中,我希望有一个包含条目的列表。其中一些列表条目具有包含更多条目的子列表。对于条目,我创建了一个类,该类具有文本字符串和指向子列表的指针。这些条目被放在一个列表中,其中包含指向条目的指针向量。现在我还想要一个包含数字的选择变量。所以我将该向量与变量放在一个struct中。
我试过这样:
entry.cpp
class entry
{
struct list; //prototype
std::string text;
struct* ptrToSubList;
}
在main.cpp
中struct list
{
std::vector<entry*> entryVector;
int selection;
}
正如您所看到的那样,问题首先要定义,因为两者在创建时都需要彼此了解。上面的例子不会编译并给出以下错误:
connot将entry :: list *转换为赋值中的main :: list *
那么,我怎样才能指向另一个类中定义的结构? 这是不好的风格吗?
答案 0 :(得分:1)
您需要完全限定list
结构,以告诉编译器它实际属于entry
类,如下所示:
struct entry::list {
// ...
};