2017-03-17 67 views
0

在我的應用程序中,我想要一個包含條目的列表。其中一些列表條目具有包含更多條目的子列表。對於條目,我創建了一個包含文本字符串的類和一個指向子列表的指針。這些條目放在一個列表中,並帶有指向條目的指針向量。現在我也想要一個包含數字的選擇變量。所以我把這個矢量和變量放在一個結構中。如何指向另一個類中定義的結構?

我想它是這樣的:

entry.cpp

class entry 
{ 
    struct list; //prototype 

    std::string text; 
    struct* ptrToSubList; 
} 

在main.cpp中

struct list 
{ 
    std::vector<entry*> entryVector; 
    int selection; 
} 

正如你所看到的問題是先定義,因爲兩者都需要在創建時已經瞭解對方了。上面的例子難道不編譯,並給出以下錯誤:

connot convert entry::list* to main::list* in assignment

所以,我怎麼可以指向在其他類中定義的結構? 這是不好的風格?

+0

看到@ crezefire的答案。完整的代碼如下所示:http://coliru.stacked-crooked.com/a/31962867849837dc – pergy

回答

1

您需要完全限定的list結構來告訴它實際上屬於下面的entry類編譯:

struct entry::list { 
// ... 
}; 
相關問題